2016-01-04 22 views
3

此功能将获取会话值如何在一个方法设置会话并获得laravel在另一种方法会话数据5.2

public function getSession(){ 
    $value =Session::get('email'); 
    var_dump($value) ; 
} 

此功能使用设置会话值

public function setSession(){ 
    Session::put('email', 'aaaaaaa.com'); 

    $value=Session::get('email'); 
    var_dump($value); 

} 

routes.php

Route::get('store','[email protected]'); 
Route::get('display','[email protected]'); 

当在url中显示类型时显示NULL

+0

你使用的是什么版本的laravel? – Moppo

+0

使用laravel 5.2 – sasy

回答

2

当您使用Laravel 5.2时,可能需要在'web'组下设置路由才能使用会话。

事实上,Laravel初始化会话在\Illuminate\Session\Middleware\StartSession::class中间件,这是'web'中间件组进行分组(你可以从Kernel.php文件中看到)

因此,使用会话,你的路线应该使用middlware:

Route::group(['middleware' => ['web']], function() { 
    Route::get('store','[email protected]'); 
    Route::get('display','[email protected]'); 
}); 

此外,我建议你正确关闭请求周期,可以肯定的是,会议将进行设置,例如:

public function setSession(){ 
    Session::put('email', 'aaaaaaa.com'); 
    $value=Session::get('email'); 

    //this will end the request-lifecycle 
    return Response::json(['result' => 'ok']); 
} 
0

如果您将新安装laravel 5.2,您可以在路径文件中看到添加的中间件['web'],它位于\ Illuminate \ Session \ Middleware \ StartSession :: class下,并且如果您将使用下面的会话该组在路由中,会话将在那里正常工作,或者如果您使用任何其他组,则必须使用该中间件。