class FileController extends Controller
{
public function login()
{
/*
* TODO: Handle via CAS
* Hardcoded for demo purposes
*/
Session::put('isLogged', true);
Session::put('index', "123456");
return View::make('login');
}
public function user()
{
if(Session::get('isLogged') == true )
return View::make('user');
}
}
我有以下代码。登录时有一个链接 转到 FileControllers@user .在第二页上,我的会话数据丢失了(Session::all() 为空)。可能导致此问题的原因是什么?
尝试使用web
中间件将您的路由(app/Http/routes.php
内部)包装在Route::group()
中:
Route::group(['middleware' => ['web']], function () {
// My Routes
});
测试这一点的简单方法:
Route::group(['middleware' => 'web'], function () {
Route::get('', function () {
Session::set('test', 'testing');
});
Route::get('other', function () {
dd(Session::get('test'));
});
});
如果删除 Web 中间件,您将收到null
,因为web
中间件负责启动会话。
确保app/Http/Kernel.php
中有web
中间件组:
protected $middlewareGroups = [
'web' => [
Middleware'EncryptCookies::class,
'Illuminate'Cookie'Middleware'AddQueuedCookiesToResponse::class,
'Illuminate'Session'Middleware'StartSession::class,
'Illuminate'View'Middleware'ShareErrorsFromSession::class,
Middleware'VerifyCsrfToken::class,
],
];