写経用ローカルシステムを改造、Laravelのリダイレクトで遊んでみる

写経用ローカルシステムを改造、Laravelのリダイレクトで遊んでみる

こんばんは、のるぼるのんです。彼此二週間位風邪が治りません。というわけで、今回も復習を兼ねて、Laravelのリダイレクトを確認したいと思います。

 

使うのは、先日作成した写経用のローカルシステム

HTMLやJSを写経するのに、bladeファイルを用意したらそこまでの導線を自動で用意する、というやつです。

 

コントローラーの中身は今こんな感じです。

PlacticeController.php

indexアクションで/resources/views/placticesの中に格納されているbladeファイルの名前を取得し、detailアクションに繋げる形です。

 

見て貰えばお分かりでしょうが、detailアクションの中に、indexアクションと同じことが書いてありますね。無駄ですのでリダイレクトアクションで記述し直します。

 

リダイレクトバック

現状、1~5.blade.phpおよび、hello.blade.phpが/resources/views/plactices中に格納されています。

welcome.blade.phpに、存在しないbladeまでのリンクを追記して、クリックしてみます。

URLが/errorになっていますが、表示はindexアクションと変わりません。

リダイレクトアクションに書き直します。

これでbladeファイルが存在しない場合、リダイレクトバックされるようになりました。

 

別コントローラアクションへのリダイレクト

今は写経用のローカルシステムを使用していますので、メインページ→各bladeでの写経ページしか用意していませんが、システムによっては、条件次第で別のコントローラアクションへ飛ばしたい、という場合もあると思います。

その場合でもリダイレクトアクションで記述可能です。

今回は、errorをクリックした場合、別アクションに飛ばして、404表示してみます。

 

web.php

 

PlacticeController.php

 

redirect()->action()で別コントローラーのアクションを呼び出すことが出来ます。また、actionメソッドは第二引数にパラメータを渡すことができますので、プロフィールや商品詳細などにも飛ばすことができます。

 

別サイトへのリダイレクト

別サイトへ飛ばすことも可能です。サイト間で登録情報を共有している場合や、商品IDを共有しているなどにも使えそうですね。今回はGoogleへのリンクを作成します。

welcome.blade.php

 

PlacticeController.php

redirect()->away()で外部サイトへ飛ばすことができます。

 

外部リンクへの導線を作成する場合、HTMLにはなるべく情報を載せたくないので、コントローラー内で制御すると安心感が増しますね。

 

他にもLaravelのリダイレクトメソッドにはダウンロードや、PDFの表示、ファイル操作、フォーム入力値を保持したまま戻るなど、様々なメソッドがありますので、是非確認してみてください。

Laravelカテゴリの最新記事