2016-04-12 9 views
1

Я создал новый проект laravel и laravel flash, кажется, не работает, как я хочу. Когда я вернусь на маршрут, вспышка исчезнет. У меня есть метод контроллера, который делает абсолютно ничего, кроме вспышки и возврата к маршруту.Laravel 5.2.29 сеанс :: мгновенно потерял

Подобно

public function activateContract(Request $request){ 
    return redirect()->to('test')->with('status', 'test'); 
} 

Мои маршруты файл

Route::group(['middleware' => 'web'], function() { 
Route::auth(); 
Route::get('/', function(){ 
    return redirect()->intended(route('contract.index')); 
}); 

Route::group(['middleware' => 'auth'], function() { 
    Route::group(['prefix' => 'contract'], function(){ 
     Route::get('', ['as' => 'contract.index' , 'uses' => 'User\[email protected]']); 
     Route::post('', ['as' => 'contract.index' , 'uses' => 'User\[email protected]']); 
     Route::get('mijn', ['as' => 'user.contract.index' , 'uses' => 'User\[email protected]']); 
    }); 

}); 


Route::get('test', function(){ 
    dd(session('status')); 
}); 
c}); 

Вот Ouput свалки фильеры тест маршрута ведьмой magicaly потерял моментальное сообщение.

null 
+0

ли вы изменить 'паутину' промежуточное программное обеспечение в приложении/Http/Kernel.php? Он должен выглядеть следующим образом: ' 'Интернет' => [ \ App \ Http \ Middleware \ EncryptCookies :: класс, \ Illuminate \ Cookie \ Middleware \ AddQueuedCookiesToResponse :: класс, \ Осветите \ Session \ Middleware \ StartSession :: class, \ Illuminate \ View \ Middleware \ ShareErrorsFromSession :: class, \ App \ Http \ Middleware \ VerifyCsrfToken :: class, ] ' –

+0

Не редактировал его и не проверял его так же, как в вашем комментарии. – Maantje

+0

Ну, я думаю, им просто нужно будет использовать put then ... и удалите его в нижней части моего основного шаблона. – Maantje

ответ

0

Вам нужно отправить сообщение с переадресацией, как так:

return redirect()->to('test')->with('status', 'test'); 

И тогда вы можете получить доступ к нему с помощью функции хелперов сессии:

session('status'); 

docs

Изменить: Поместите Route::get('test') в свою группу с помощью «промежуточного» программного обеспечения.
Подробнее о HTTP Middleware here

+0

сеанс ('статус'); возвращает null также. – Maantje

+0

См. Мое редактирование @Maantje –

+0

Все тот же результат. – Maantje

0

Laravel 5,2 измененная промежуточного документа, как: Имейте в виду, группа веб-промежуточное программное обеспечение автоматически применяется к файлу по умолчанию routes.php по RouteServiceProvider.

Это означает, что если вы сохраните маршрут в другом ['middleware' => 'web'], данные, установленные session() -> flash(), будут потеряны при выполнении промежуточного программного обеспечения дважды.

Это также ответ, который кто-то спросил, почему веб-сайт выполняется дважды.

Laravel 5.2 : Web middleware is applied twice

Смежные вопросы