概要
laravelのリダイレクト機能について簡単な備忘録を投稿します。
何気なく使用しているredirect関数ですが細かく分類すると3つの使い方に分類できます。
・PHPのheader関数のように指定したパスを表示する
・Illuminate\Http\RedirectResponse
クラスのインスタンス
・Illuminate\routing\Redirector
クラスのインスタンス
また、redirectメソッドはグローバルに使用できるヘルパー関数の一つで、どのクラスにおいても自由に使える関数です。
RedirectResponseクラス
Illuminate\Http\RedirectResponse
クラスのレスポンスを返すredirectメソッドです。
ここではthis自身をreturnするシンプルなメソッドをまとめます。
内容 | メソッド | 概要 |
---|---|---|
入力データの付加 | $response->withInput() | 送信されたフォームの値をInput::old()へ引き継ぐ |
バリデーションのエラーを付加する | $response->withError() | 引数の値を$errors変数へ保存してリダイレクト先へ引き継ぐ |
クッキーを付加する | $response->WithCookie() | クッキーを保存してリダイレクト先へ引き継ぐ |
Redirecorクラス
引数をなしで呼び出すとIlluminate\routing\Redirector
クラスのインスタンスが返されます。
主にルーティングに関する情報を扱う機能です。
内容 | メソッド | 概要 |
---|---|---|
ルートの指定 | redirect()->route('ルート名','配列') | web.phpにルート情報として記述したものを指定します。 |
アクションの指定 | redirect()->action('アクションの指定','配列') | SampleController@indexのようにコントローラーにアクションを指定します。 |
ビューを指定 | redirect()->view('ビュー名') | ビューを指定してリダイレクトします。 |
JSONにデータを返す | redirect()->json('テキスト') | JSONデータっをクライアントに返します。 |
ファイルを表示 | redirect()->file('ファイルパス') | パスで指定したファイルを表示します。 |
ファイルをダウンロード | redirect()->download('ファイルパス') | パスで指定したファイルをダウンロードします。 |
参考
[ヘルパ(redirect)]
(https://readouble.com/laravel/6.x/ja/helpers.html#method-redirect)
[HTTPレスポンス]
(https://readouble.com/laravel/6.x/ja/responses.html#redirects)