はじめに
フラッシュメッセージは、リクエストされた間だけ表示される一時的なメッセージのことです。
エラーメッセージを表示したり、
処理が完了したことをお知らせするときなどによく使われますね!
今回は最もよく使われるであろうredirect後のフラッシュメッセージの
表示方法を自分の頭の整理をかねてメモ。
ちなみにどのLaravelのバージョンでも作動します!
書き方
以下のようなリダイレクトされるコードがあったとします。
app/Http/Controllers/XxxController.php
public function confirm()
{
return view('auth/delete/hoge');
}
public function delete()
{
return redirect('/delete/hoge');
}
このリダイレクト先にフラッシュメッセージのデータを渡すには、redirect()メソッドからアロー演算子でwith()メソッドを繋ぐだけでokです。
with() メソッドの第1引数にキー、第2引数に値を入れます。
app/Http/Controllers/XxxController.php
public function delete()
{
return redirect('/delete/hoge')->with('message', 'パスワードが違います');
}
データはセッションに保存されるので、Viewで表示するときはsession() を使います。
resources/views/auth/delete/hoge.blade.php
@if (session('message'))
<div class="alert alert-danger">
{{ session('message') }}
</div>
@endif
お手軽で実装できますね。