laravel 5.2 如何在一种方法中设置会话并在另一种方法中获取会话数据
How to set session in one method and get the session data in another method in 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','Product@setSession');
Route::get('display','Product@getSession');
在 url 中输入显示时显示 NULL
当您使用 Laravel 5.2 时,您可能必须在 'web'
组下设置路由才能使用会话。
实际上,Laravel初始化了\Illuminate\Session\Middleware\StartSession::class
中间件中的Session,即分组在'web'
中间件组下(从Kernel.php
文件中可以看出)
因此,要使用会话,您的路由应使用该中间件:
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']);
}
如果您要全新安装 laravel 5.2,您可以在路由文件中看到添加了一个中间件 ['web'],它位于 \Illuminate\Session\Middleware\StartSession::class 下,如果您将在路由中使用该组下的会话,会话将在那里正常工作,或者如果您使用任何其他组,则必须使用该中间件。
此函数将获取会话值
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
当您使用 Laravel 5.2 时,您可能必须在 'web'
组下设置路由才能使用会话。
实际上,Laravel初始化了\Illuminate\Session\Middleware\StartSession::class
中间件中的Session,即分组在'web'
中间件组下(从Kernel.php
文件中可以看出)
因此,要使用会话,您的路由应使用该中间件:
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']);
}
如果您要全新安装 laravel 5.2,您可以在路由文件中看到添加了一个中间件 ['web'],它位于 \Illuminate\Session\Middleware\StartSession::class 下,如果您将在路由中使用该组下的会话,会话将在那里正常工作,或者如果您使用任何其他组,则必须使用该中间件。