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 @用户。在第二页上,我的会话数据丢失(Session :: all()为空)。可能导致这个问题的原因是什么?
答案 0 :(得分:4)
尝试使用app/Http/routes.php
中间件在Route::group()
中包裹您的路线(web
内):
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'));
});
});
如果删除网络中间件,您将收到null
,因为web
中间件负责启动会话。
确保web
:
app/Http/Kernel.php
中间件组
protected $middlewareGroups = [
'web' => [
Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
Middleware\VerifyCsrfToken::class,
],
];