Laravel сохранить куки перед перенаправлением - PullRequest
0 голосов
/ 11 мая 2018

У меня проблема с сохранением куки перед перенаправлением, пример кода:

class Example extends Controller{

    public function index(){

        Cookie::queue('examplecookie', 1, 525600);

        $this->next();
    }


    public function next(){


        $this->redirect();

        /* Prevent this part for loading after redirect
        *
        *  OTHER CODE ...
        */ 

    }


    public function redirect(){

        header('Location: http://someurl.com');

    }
}

Если я использую die () после того, как местоположение заголовка PHP остановлено, браузер перенаправляется и cookie не сохраняется, а если браузер die не существует, браузер перенаправляется, cookie сохраняется, но PHP по-прежнему переходит к другому коду. Также при использовании redirect () загружается другой код. Пример:

public function redirect(){

    return \redirect('http://someurl.com')->send();

}

Этот класс является примером логики, реальный код более сложный :). Я хочу сохранить куки, перенаправить и запретить PHP переходить на другой код.

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Вам нужно вернуть ответ в основную функцию.Все дело в манипулировании данными / возврате ответа или представления в вашем контроллере.

Пожалуйста, смотрите, я обновил ваш код:

class Example extends Controller{

    public function index(){

        Cookie::queue('examplecookie', 1, 525600);

        return $this->next();
    }


    public function next(){
        return $this->redirect();
    }


    public function redirect(){
        return redirect('http://someurl.com');
    }
}
0 голосов
/ 11 мая 2018

Чтобы вернуть ответ, заканчивающий выполнение кода, вы должны вернуть 'up the chain'. Я просто должен был сделать это для проекта XML. Важным является оператор return в первом методе контроллера, поэтому сделайте возврат в методе redirect (), затем в тот момент в вашем методе next () и затем верните этот метод перенаправления в методе index ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...