我在用户进行身份验证后重定向到homecontroller并将auth令牌设置为session以在home控制器中使用 -
控制器1
$secret = Crypt::encrypt($secret);
Session::put('secret', $secret);
Session::save();
return redirect()->action('loginController@homeRedirect');
控制器2 - > homeRedirect
function homeRedirect(){
dd(Session::all());
if(Session::has('secret')){
$secret = Session::get('secret');
Session::forget('secret');
这里转储是空白数组。会话中没有任何内容,但是如果我测试这个dd(Session::all())
,那么它会提供正确的详细信息。
此外,我尝试使用with('secret', $secret)
发送数据,但也会返回空白会话。
我的session.php文件包含以下条目
'driver' => 'file',
,laravel版本为5.2。
修改
如果我尝试这样 -
function homeRedirect(Request $request){
$ses = $request->session()->get('secret');
dd($ses);
然后我收到错误陈述Session store not set on request.
答案 0 :(得分:0)
当您使用Laravel 5.2时,您应该确保为Web中间件中的loginController@homeRedirect
设置路由。
您的路线应在routes.php
中定义,如此
Route::group(['middleware' => ['web']], function () {
Route::get('/homeredirect','loginController@homeRedirect');
}
如果以这种方式定义:
Route::group(['middleware' => ['web']], function () {
}
Route::get('/homeredirect','loginController@homeRedirect');
它不起作用