Laravelでフラッシュデータを使う

こんにちは、さるまりんです。

フラッシュデータは次のリクエストまでの間セッションに保存されるデータです。
「保存されました」「送信されました」など、一度だけ表示するメッセージなどでよく使います。

これをLaravelで使ってみます。

まずは保存、3つの方法があります。

一つ目の方法はアクション内でメソッドflash()を使った方法です。

function save(Request $request) {
    // 実際の処理をここに

    $request->session()->flash('message', '処理が成功しました。');
    return redirect('completed');
}

二つ目の方法はSessionクラスのスタティックメソッドを使った方法です。

function save(Request $request) {
    // 実際の処理をここに

    \Session::flash('message', '処理が成功しました。');
    return redirect('completed');
}

三つ目の方法はメソッドwith()を使った方法です。

function save(Request $request) {
    // 実際の処理をここに

    return redirect('completed')->with('message', '処理が成功しました。');
}

アクション内と同様、Route指定時にこんな書き方もできます。

Route::post('save', function() {
    // 実際の処理をここに

    return redirect('completed')->with('message', '処理が成功しました。');
});

実際にビュー(blade)で表示するときはこうです。

{{ session('message') }}

シンプルなんです。
よく使うのですが、なぜか忘れてしまうのでメモしておきました。
もっと書いてもっと自分のものにしていかなきゃ。

読んでくださってありがとうございました。
それではまた!