【发布时间】:2015-06-30 03:12:43
【问题描述】:
我正在尝试使用 Laravel 5 中间件中的会话,但它们不起作用。
具体来说 - var_dump(Session::all()); 在句柄方法的开头给了我一个值的数组 - _tokken,然后在这个方法的结尾
Session::put('lang',$locale);
var_dump(Session::all());
给我一个包含两个值的数组,_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',
];
所以我问 - 我做错了什么?
编辑:在 Illuminate\Session\Middleware\StartSession 中挖掘我发现了这个 -
//Note that the Laravel sessions do not make use of PHP "native" sessions in any way since they are crappy.
作为评论,所以我对 session_status() 的测试并不相关。
【问题讨论】:
-
我刚刚删除了我的答案,因为它不正确。我在项目的中间件中测试了
Session::all(),它工作正常。抱歉回答不正确。 -
@limonte 不用担心,是的,我写了 Session::all() 返回 _token,但后来没有设置我自己的值
-
对我来说它按预期工作,即 _token、_previous 和我的自定义值
-
@limonte 也许您可以分享您的项目或其他什么?还是私下帮我?
-
你做到了吗?
标签: php session laravel laravel-5