Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.02.2018 04:50:10

Прервать выполнение скрипта после return -> redirect()

Метод с длинным, но однозначным названием abortRequestIfAnotherOneWithSameIdExistsInDatabase() должен прервать выполнение скрипта, если в БД будет зайдена запись с таким же ID визита сайта (то есть два запроса подряд за один визит сайта не позволено). return redirect() к прерыванию не приводит, и все методы после abortRequestIfAnotherOneWithSameIdExistsInDatabase() выполняются, чего быть не должно. Естественно, я не могу вставить exit; после return, так как всё, что после return, не будет выполнено.

Что можно сделать в качестве альтернативы?

PHP
<?php

    
public function submitConsultationRequest(){

        
$this -> abortRequestIfAnotherOneWithSameIdExistsInDatabase();
        
// другие методы
    
}

    private function 
abortRequestIfAnotherOneWithSameIdExistsInDatabase(){

        
$queryResult DB::table('requests') ->
            
where'visitId' => request() -> session() -> get('visitId'),
        ]) -> 
first();

        if (!
is_null($queryResult)) {
            return 
redirect() -> route('top');
        }
    }

Изменено Gleb2708 (04.02.2018 04:50:50)

Не в сети

#2 04.02.2018 10:11:19

Re: Прервать выполнение скрипта после return -> redirect()

А с чего redirect()->route(’top’) должен прерывать? Он перенаправляет пользователя.

Сделай что-то вроде:

PHP
if ($queryResult) {
    
abort(404);
}

Не в сети

#3 04.02.2018 15:02:58

Re: Прервать выполнение скрипта после return -> redirect()

Благодарю Вас за ответ!

Честно, говоря, не совсем понимаю, зачем я return списал откуда-то перед redirect()… Перенаправление и без return будет же.

Изменено Gleb2708 (04.02.2018 15:03:13)

Не в сети

#4 05.02.2018 10:20:16

Re: Прервать выполнение скрипта после return -> redirect()

abort(404); даст страницу Sorry, the page you are looking for could not be found., а это не то, что надо. Надо вернуться на главную страницу.

Не в сети

#5 05.02.2018 13:17:21

Re: Прервать выполнение скрипта после return -> redirect()

должен прервать выполнение скрипта, если в БД будет зайдена запись с таким же ID визита сайта

Не в сети

Подвал раздела