PR

【Laravel】リダイレクト処理で変数を渡す方法

アイキャッチ画像

Laravelで開発をしていると、リダイレクト処理をするときに変数も渡したいときがあります。

本記事では、Laravelのリダイレクト処理で変数を渡す方法を解説します。

手順

例えば、リダイレクト先が下記だとします。

Route::get('members', 'MembersController@index')->name('members.index');

次に、コントローラーにリダイレクト処理を書きます。

public function hoge()
{
    // 中略
    return redirect()->route('members.index')->with(compact('members'));
}

解説

web.phpではルートに名前を設定できます。

コントローラーでは、route()メソッドでリダイレクト先を指定しています。
今回の例だと【’members.index’】です。

web.phpのname()メソッドで設定したルート名を指定しましょう。

次に、with()メソッド内でcompact()関数を使って変数の【$members】を渡しています。

ちなみに、compact()を使わない下記の書き方も可能です。

public function hoge()
{
    // 中略
    return redirect()->route('members.index')->with(compact('members'));

    // 他にも
    return redirect()->route('members.index')->with(['members' => $members]);
    // 渡す変数が1つだけの場合、下記もOK
    return redirect()->route('members.index')->with('members', $members);
}

しかし、可読性の高さから、初めに紹介したcompact()を使う書き方をおすすめします。

まとめ

リダイレクト処理でどうしても変数を渡したいときはたまにあるので、今回紹介した方法を使ってみてください!

以上、『【Laravel】リダイレクト処理で変数を渡す方法』でした。