我在重定向之前保存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继续使用其他代码。
答案 0 :(得分:2)
要返回结束代码执行的响应,您必须返回'up the chain'。我只需要为XML项目执行此操作。第一个控制器方法中的return语句是重要的,所以在redirect()方法中返回,然后在next()方法中返回,然后在index()方法中返回该重定向方法。