Laravelでリダイレクト処理を書く方法
コントローラ内のメソッドに返り値として記述する。
〇〇Controller.php
class 〇〇Controller extends Controller
{
// リダイレクト
public function redirect() {
return redirect('URL');
}
}
・リダイレクトはredirect()関数を使用する。
これはどのディレクトリからも自由にアクセスできる関数。
・redirect関数の書き方は以下の通り。route()メソッドを使用するのがおすすめ。(URLの変更にも影響を受けないため)
// URLを直接指定する
return redirect('URL');
// to()メソッドを使ってURLを直接指定する
return redirect()->to('URL');
// route()ヘルパーを使って名前付きルートを指定する
return redirect(route('ルート名'));
// route()メソッドを使って名前付きルートを指定する ★おすすめ
// 補足:route()ヘルパーとは異なる。redirect()ヘルパーは引数が空だとRedirectorというクラスのインスタンスを返すが、そのインスタンスが持つroute()メソッドのこと
return redirect()->route('ルート名');
// action()メソッドを使ってコントローラとアクションを指定する
return redirect()->action([コントローラ名::class, 'アクション名']);
リダイレクトした後、フラッシュメッセージを表示したい場合
〇〇Controller.php
class 〇〇Controller extends Controller
{
// リダイレクト
public function redirect() {
return redirect()->route('ルート名')->with('キー名', '任意のメッセージ');
}
}
・フラッシュメッセージ:処理結果をユーザーに伝えるためのメッセージ。
・with('キー名','任意のメッセージ'):
フラッシュメッセージを表示するための関数。
セッション($_session('キー名'))にメッセージが保存される仕組み。