Laravel5 -不能让session工作


Laravel5 - can't get Sessions working

我尝试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中会话不工作


  1. 在Laravel如此简单的OMG嗡嗡声之后,让我们在雨中跳舞吧!!PHP中最简单的事情,如$_SESSION现在需要'Request::session(),而你需要user Request。那么你需要2种不同的方法来保存并从中获取值,而不是直接使用$_SESSION['x'] !!

  2. Laravel(天才超级外星科技)在TerminableMiddleware而不是现场保存会话,但没有在https://laravel.com/docs/5.2/session上提到它。所以你需要显式地调用Session::save() !!

好了,5行做$_SESSION的1行工作!

如果你使用的是5.2,确保你的控制器是由'web'中间件组管理,或者通过路由

$route->group([ 'middleware' => ['web'] ....  

或者在你的控制器构造方法中实例化它;

$this->middleware('web');