Session data not preserved after redirection Session data not preserved after redirection laravel laravel

Session data not preserved after redirection


I found out that it is necessary to apply the web middleware on all routes. Drown has mentioned to do so, but since March 23st 2016, Taylor Otwell changed the default RouteServiceProvider at https://github.com/laravel/laravel/commit/5c30c98db96459b4cc878d085490e4677b0b67ed

By that change the web middleware is applied automatically to all routes. If you now apply it again in your routes.php, you will see that web appears twice on the route list (php artisan route:list). This exactly makes the flash data discard.

Also see: https://laracasts.com/discuss/channels/laravel/session-flash-message-not-working-after-redirect-route/replies/159117


It turns out that with Laravel 5.2, the routes have to be wrapped in the web middleware for the session to work properly.

This fixed it :

Route::group(['middleware' => ['web']], function () {    // ...    Route::post('/topics/{slug}/answer', 'PostsController@answer');    Route::post('/topics/{slug}/unanswer', 'PostsController@unanswer');    Route::post('/topics/{slug}/delete', 'PostsController@delete');});


Please check APP/kernel.php

\Illuminate\Session\Middleware\StartSession::class,

is define multiple times

protected $middleware = [    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,    \Illuminate\Session\Middleware\StartSession::class,  ];protected $middlewareGroups = [    'web' => [        \App\Http\Middleware\EncryptCookies::class,        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,        \Illuminate\Session\Middleware\StartSession::class,        \Illuminate\View\Middleware\ShareErrorsFromSession::class,        \App\Http\Middleware\VerifyCsrfToken::class,        \Illuminate\Routing\Middleware\SubstituteBindings::class,    ],

You can comment any one or delete it. We need to define one time only.