Hyd*_*xis 1 php session-variables laravel laravel-5 laravel-5.2
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');
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下代码。登录时有一个指向FileControllers @ user的链接。在第二页上,我的会话数据丢失(Session :: all()为空)。是什么导致此问题?
尝试使用中间件将您的路线(位于内app/Http/routes.php)包装:Route::group()web
Route::group(['middleware' => ['web']], function () {
// My Routes
});
Run Code Online (Sandbox Code Playgroud)
一种简单的测试方法:
Route::group(['middleware' => 'web'], function () {
Route::get('', function () {
Session::set('test', 'testing');
});
Route::get('other', function () {
dd(Session::get('test'));
});
});
Run Code Online (Sandbox Code Playgroud)
如果删除Web中间件,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,
],
];
Run Code Online (Sandbox Code Playgroud)