はじめに
LaravelをViewの保存ボタンや削除ボタンを押してもアクションの処理メッセージを表示するには書きを行ってみてください。次の画面だけに表示されるフラッシュメッセージが表示できます。セッションへの格納ですが自動削除なので実装が楽です。
フラッシュデータの渡し方
フラッシュデータの渡し方は主に3種類あります
flashメソッドで渡す
Flashメソッドを使うとセッションへstatus
という名前のデータを保存できます。status
の中身は処理が完了しました
です保存アクション内
$request->session()->flash('status', '処理が完了しました');
return redirect('/');
スタティックメソッドを使う
Sessionクラスのflashメソッドを使うことでも値を渡すことができます保存アクション内
\Session::flash('flash_message', '処理が完了しました');
return redirect('/');
withメソッドを使う
flash
メソッドと同じようにフラッシュデータを渡せるwith
メソッドもあります保存アクション内
return redirect('dashboard')->with('status', '処理が完了しました');
ビューでの表示
次にビューでの表示の仕方について説明します
Bootstrapを使えばいい感じに表示してくれます
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
以上がフラッシュデータを使ったステータスメッセージの表示仕方です。
フラッシュデータを1つ先のリクエストまで持続させたい場合
reflash
メソッドを使うと全フラッシュデータを次のリクエストまで保持できます。
$request->session()->reflash();
特定のフラッシュデータのみ持続させたい場合
keep
メソッドを使います。
$request->session()->keep(['user', 'email']);
参考になれば幸いです