我试图在Laravel 5 Middleware中使用Sessions,但它们无法正常工作.具体来说 - var_dump(Session::all());在handle方法的开头给我一个数组的值--_tokken,然后在这个方法的最后
Session::put('lang',$locale);
var_dump(Session::all());
Run Code Online (Sandbox Code Playgroud)
给我数组有两个值,_tokken和我的lang键,但刷新后它相同,据我所知,第二次刷新后应该有相同的结果.
我可能在Session中间件之前加载了我的中间件,这是真的,然后我切换了,现在我的Kernel.php看起来像这样 -
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
'App\Http\Middleware\Language',
];
Run Code Online (Sandbox Code Playgroud)
所以我问 - 我做错了什么?
编辑:挖掘Illuminate\Session\Middleware\StartSession我发现了这个 -
//Note that the Laravel sessions do not make use of PHP "native" sessions in any way since they are crappy.
Run Code Online (Sandbox Code Playgroud)
作为评论,所以我对session_status()的测试不是相关的.