Laravel でリダイレクトを行う時、Flashメッセージをセッションに載せてリダイレクト先のページで表示したい時。
サンプル
|
1 2 3 4 5 |
Route::post('/update', function (Request $request) { // return redirect('/')->with('message', 'まだ作ってないよ!'); }); |
Note
ridirect($to)->with($key, $val)はsession($to)->flash($key, $value);と等価。
上記例は
|
1 2 3 4 5 6 7 |
Route::get('/update', function (Request $request) { // session()->flash('message', 'まだ作ってないよ!'); return redirect('/'); }); |
の省略と言える。
flashやwithの引数を連想配列にして複数指定可。
また、前の画面(=リファラ)にメッセージ付きでリダイレクトする場合は同様に
|
1 |
return back()->with('message', 'まだ作ってないよ!'); |
のようにする。
ヘルパー便利。
RedirectResponseにはflashをセットするwithのほかに、CookieをセットするwithCookieなんというメソッドも用意されてる。
リダイレクト先での表示
Viewテンプレートのどっかでメッセージを表示できるように仕込んでおくとか。右上とかに通知表示できる仕組み仕込んでおくのもいいのかも。
|
1 2 3 4 5 |
@if(session()->has('message')) <div class="alert alert-info mb-3"> {{session('message')}} </div> @endif |



