Laravel在重定向之前保存cookie

时间:2018-05-11 00:15:29

标签: php laravel redirect cookies

我在重定向之前保存cookie有问题,示例代码:

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(),则停止浏览器重定向并且不保存cookie,如果不存在,则重定向浏览器,保存cookie,但PHP仍然转到其他代码。此外,当使用redirect()时,会加载其他代码。例如:

public function redirect(){

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

}

这个类是逻辑的一个例子,真正的代码更复杂:)。我想保存cookie,重定向并阻止PHP继续使用其他代码。

1 个答案:

答案 0 :(得分:2)

要返回结束代码执行的响应,您必须返回'up the chain'。我只需要为XML项目执行此操作。第一个控制器方法中的return语句是重要的,所以在redirect()方法中返回,然后在next()方法中返回,然后在index()方法中返回该重定向方法。