在laravel中重定向期间,会话变量不会保留

时间:2016-01-10 08:57:03

标签: php laravel session laravel-5 laravel-5.2

我在用户进行身份验证后重定向到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.

1 个答案:

答案 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');

它不起作用