Laravel リダイレクト後 フラッシュメッセージ


はじめに

フラッシュメッセージは、リクエストされた間だけ表示される一時的なメッセージのことです。

エラーメッセージを表示したり、
処理が完了したことをお知らせするときなどによく使われますね!

今回は最もよく使われるであろう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

お手軽で実装できますね。