此函数将获取会话值
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','Product@setSession');
Route::get('display','Product@getSession');
当在url中显示类型时,它显示为NULL
答案 0 :(得分:2)
当您使用Laravel 5.2时,您可能必须在'web'
组下设置路线才能使用会话。
事实上,Laravel在\Illuminate\Session\Middleware\StartSession::class
中间件中初始化了会话,该中间件分组在'web'
中间件组下(正如您从Kernel.php
文件中看到的那样)
因此,要使用会话,您的路由应使用该middlware:
Route::group(['middleware' => ['web']], function () {
Route::get('store','Product@setSession');
Route::get('display','Product@getSession');
});
此外,我建议您正确关闭请求周期,以确保会话设置,例如:
public function setSession(){
Session::put('email', 'aaaaaaa.com');
$value=Session::get('email');
//this will end the request-lifecycle
return Response::json(['result' => 'ok']);
}
答案 1 :(得分:0)
如果您将新安装laravel 5.2,您可以在路径文件中看到添加了中间件['web'],它位于\ Illuminate \ Session \ Middleware \ StartSession :: class下,如果您将使用下面的会话路由中的那个组,会话在那里工作正常,或者如果你正在使用任何其他组,那么你必须使用那个中间件。