2016-01-10 1 views
1

Я делаю редирект HomeController после проверки подлинности пользователя и установите маркер аутентификации на сессию для использования в домашних условиях, как контроллер -Session не сохраняется при перенаправлении в Laravel

контроллер 1

$secret = Crypt::encrypt($secret); 
    Session::put('secret', $secret); 
    Session::save();  
    return redirect()->action('[email protected]'); 

контроллер 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.

EDIT

Кроме того, если я стараюсь, как это -

function homeRedirect(Request $request){ 
    $ses = $request->session()->get('secret'); 
    dd($ses); 

Тогда я получаю сообщение об ошибке с указанием Session store not set on request.

ответ

0

Как вы используете Laravel 5.2, вы должны убедиться, что у вас есть задать маршрут для вашего [email protected] в промежуточном программном обеспечении.

Ваш маршрут должен быть определен в routes.php как так

Route::group(['middleware' => ['web']], function() { 

    Route::get('/homeredirect','[email protected]'); 
} 

Если это определено следующим образом:

Route::group(['middleware' => ['web']], function() { 


} 

Route::get('/homeredirect','[email protected]'); 

это не будет работать