Sibainu Relax Room

柴犬と過ごす

Laravel viewのwith rediretのwith 違いは

俺が気が弱いのがバレた。改めてキリっとしようとしている柴犬です。

最後に小さい女の子に怒られて戸惑っている映像があります。

概要

viewのwithメソッドとredirectの時のそれとは、働きが理解できなくて色々調べてみました。

return view('✕✕✕✕✕')->with('〇〇〇〇〇', △△△△△△);
return redirect()
    ->route('✕✕✕✕✕')
    ->with('〇〇〇〇〇', "△△△△△△");

すんなりとは理解できなかったので記録することにします。

ヘルパー関数 view の with

次の公式ホームページによると

https://laravel.com/docs/10.x/views

次の画面のように「データをビューで使用できるように、データを配列にしてビューに渡すことができます」とあります。

次に以下の記述があります。

このようにする場合、データはキーと値のペアを持つ配列(連想配列)でなければなりません。ビューにデータを渡した後、 <?php $name ?>のようにデータのキーでビュー内の各値に使用することができます。

データの配列をビューヘルパー関数「view」に(引数として)渡すかわりに、 「with」メソッドを使用して個々のデータをビューに追加することもできます。

「with」メソッドはビューオブジェクトのインスタンスを返すのでメソッドを連鎖させ、関数の戻り値を return で返すことができます

関数 redirect の with

次の公式ホームページによると

https://laravel.com/docs/10.x/redirects

見出し「Redirecting With Flashed Session Data」の中に次のようにあります。

新しいURLへのリダイレクトとセッションへのデータのフラッシュは同時に行われます。RedirectResponse のインスタンスを作成し、一つの流れるメソッドチェインのようにセッションにデータを渡すこともできます

リダイレクトする前に、「RedirectResponse」インスタンスが提供する「withInput」メソッドを使用して、現在のリクエストの入力データをセッションにフラッシュすることができます。

セッションにフラッシュされると、次のリクエストの間に取り出すことができます。

この機能はセッションを利用するので、「back」関数を呼び出すルートが「Web」ミドルウェアグループを使用しているか、すべてのセッションミドルウェアが適用されていることが必要です。

リダイレクトされた後、セッションからフラッシュされたメッセージを次のように表示することができます。

結論

「view」の「with」と「rediret」の「with」違いは、両方とも次のステージに値を渡すが、「rediret」の「with」はフラッシュされたセッションであるということです。

柴犬がお友達に怒られた

柴犬は気が弱いです。

歳からくるものか最近気が弱くなっています。小さい女の子の犬と遊んでいましたが少し怒られるともうどうしていいのかわからず後退りしてしまいました。