2016-04-12 4 views
1

J'ai créé un nouveau projet laravel et le flash laravel ne semble pas fonctionner comme je le souhaite. Au moment où je retourne à un itinéraire, le flash est parti. J'ai une méthode de contrôleur qui ne fait absolument rien d'autre que clignoter et revenir à un itinéraire.Laravel 5.2.29 session :: flash perdu instantanément

Comme si

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

Mes itinéraires fichier

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}); 

Voici le ouput de la décharge de la filière dans la sorcière d'itinéraire de test perdu magicaly le message flash.

null 
+0

Avez-vous modifié le middleware 'web' dans app/Http/Kernel.php? Il devrait ressembler à ceci: ' 'web' => [ \ App \ Http \ Middleware \ EncryptCookies :: class, \ Illuminate \ Cookies \ Middleware \ AddQueuedCookiesToResponse :: class, \ Illuminate \ session \ Middleware \ StartSession :: class, \ Illuminate \ Vue \ Middleware \ ShareErrorsFromSession :: classe, \ App \ Http \ Middleware \ VerifyCsrfToken :: class, ] ' –

+0

N'a pas édité et vérifié le même que dans votre commentaire. – Maantje

+0

Eh bien, je suppose que je vais juste devoir utiliser mettre puis ... et le jeter au fond de mon modèle maître. – Maantje

Répondre

0

Vous devez envoyer le message avec la redirection comme ceci:

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

Et vous pouvez y accéder à la fonction d'aide de la session:

session('status'); 

docs

Edit: Placez votre Route::get('test') dans votre groupe avec le middleware 'web'.
En savoir plus sur HTTP Middleware here

+0

session ('status'); renvoie null aussi. – Maantje

+0

Voir mon édition @Maantje –

+0

Toujours le même résultat. – Maantje

0

Laravel 5.2 document middleware modifié comme: Gardez à l'esprit, le groupe middleware Web est automatiquement appliqué à votre fichier routes.php par défaut par le RouteServiceProvider. Cela signifie que si vous conservez une route dans une autre ['middleware' => 'web'], les données de session() -> flash() seront perdues par le middleware Web exécuté deux fois.

C'est aussi la réponse que quelqu'un a demandé pourquoi le Web a été exécuté deux fois.

Laravel 5.2 : Web middleware is applied twice