【发布时间】:2016-06-23 20:51:41
【问题描述】:
我有一个具有重定向功能的控制器:
public function myControllerMethod()
{
$data = $this->blabla();
return Redirect::to('previousroute')->with('data', $data);
}
这个先前的路由由 otherControllerMethod() 处理,如下所示:
public function otherControllerMethod()
{
$data = Session::get('data');
return $this->makeView($data);
}
不幸的是,Laravel 忘记了这个会话数据。我以前做过很多次,我从未见过在一次重定向后是否忘记了会话闪存数据。这里发生了什么?我已经尝试添加和删除“网络”中间件,但没有任何效果。如果有人知道为什么会这样,请告诉我。
【问题讨论】:
-
我遇到过几次类似的问题。您能否检查问题是否在于您每次请求都会获得一个新会话?就我而言,问题与清漆有关。 Varnish 没有绕过 cookie 到 ngnix,每次都会变成一个新会话。在这种情况下有几个解决方法:调整你的清漆设置或添加一个特殊的标题来强制清漆绕过 cookie。希望它带来一些光明。
-
您显示的代码均未设置任何会话或闪存数据。
-
帕特里克斯 - 这实际上不是真的。使用 with() 方法的 redirect() 会刷新数据。见:laravel.com/docs/5.2/…
标签: php laravel session redirect middleware