我尝试Laravel 5和不能得到会话工作。我在Controller
中,这是我在新设置和新控制器上所做的:
'Request::session()->put('test', 'x');
var_dump('Request::session()->get('test'));
只要会话正在被写入,它就会工作,并且一旦你注释了第一行,会话值就会在下一个请求中消失。
同样,我尝试了Session::
而不是Request::session()
,结果仍然相同。
好吧,我自己找到了解决方案,感谢两个帖子:
Laravel 5 - session does 't work
在中间件Laravel 5中会话不工作
-
在Laravel如此简单的
OMG
嗡嗡声之后,让我们在雨中跳舞吧!!PHP中最简单的事情,如$_SESSION
现在需要'Request::session()
,而你需要user Request
。那么你需要2种不同的方法来保存并从中获取值,而不是直接使用$_SESSION['x'] !! -
Laravel(天才超级外星科技)在
TerminableMiddleware
而不是现场保存会话,但没有在https://laravel.com/docs/5.2/session上提到它。所以你需要显式地调用Session::save()
!!
好了,5行做$_SESSION的1行工作!
如果你使用的是5.2,确保你的控制器是由'web'中间件组管理,或者通过路由
$route->group([ 'middleware' => ['web'] ....
或者在你的控制器构造方法中实例化它;
$this->middleware('web');