use*_*958 1 php session laravel laravel-5
我正在寻求帮助.
我做了一个全新的Laravel装置(此时为5.2.15).我不是在使用Homested.我chmod'存储'目录和子目录,如文档所示,给予写入权限.会话配置为默认值,未触及任何内容.因此会话驱动程序是'文件',路径是'框架/会话'.
我写这些测试路线:
Route::get('/', function () {
session(["test" => "ok"]);
return view('welcome');
});
Route::get('/2', function () {
print "session = ".session('test');exit();
});
Run Code Online (Sandbox Code Playgroud)
看到会话工作不应该足够吗?session('test')为null,并且没有在框架/会话中写入文件.Chmoded 777框架/会话文件夹,确保没有任何改变.
我是Laravel的新手..也许我错过了什么?我需要在config/session.php中设置这些变量吗?
'path' => '/',
'domain' => null,
Run Code Online (Sandbox Code Playgroud)
谢谢
如果您打开app/Http/Kernel.php,您将看到该会话类是"web"组的一部分,因此默认情况下不包含它:
protected $middlewareGroups = [
'web' => [
...
\Illuminate\Session\Middleware\StartSession::class,
...
]
]
Run Code Online (Sandbox Code Playgroud)
因此,您必须将路由包装在具有"web"中间件的组中,或者将"web"中间件分别添加到每个路由:
Route::group(['middleware' => ['web']], function() {
Route::get('/', function () {
session()->put('test', 'ok');
return view('welcome');
});
Route::get('/2', function () {
return 'session = ' . session('test');
});
}
Run Code Online (Sandbox Code Playgroud)