【Laravel】名前付きルートの実装方法
こんにちは、みよしやです。
今回はLaravelのルートに名前を付けて呼び出す方法について書いていこうと思います。
Laravelとは
Laravel(ララベル)は、MVCモデルを採用しているWebアプリケーション用のPHPフレームワークです。
他フレームワークに比べバージョンアップの頻度が高くドキュメントも豊富なため、今最も人気となっています。
ルーティングとは
ルーティングは、リクエストされたURLとLaravelの各処理を紐付ける方法です。
設定は以下のファイルで行います。
[Laravelプロジェクトフォルダ]/routes/web.php
通常のルーティング
Route::get('/product/{id}/detail', 'SampleController@detail');
web.phpでの定義
<a href="/product/1/detail">商品1の詳細ページ</a>
ビュー側(blade.php)での呼び出し
上記のように記述した場合、
“商品1の詳細ページ”リンクを押すとSampleControllerのdetailという関数が実行されます。
名前付きルートの実装方法
ルート定義に名前を付け、その名前でURLの呼び出しをすることができます。
Route::get('/product/{id}/detail', 'SampleController@detail')->name('detail');
web.phpで上記のようにname関数でルート名を定義すると
ビュー側からroute関数で呼び出すことができます。
<a href="{{ route('detail', ['id' => 1]) }}">商品1の詳細ページ</a>
route関数での呼び出しは下記のようにコントローラーでも可能です。
// リダイレクトの生成
return redirect()->route('detail', ['id' => 1]);
名前付きルートのメリット
ルート名で呼び出すことにより、
パスが長い場合のタイプミスや、パスが変更になった場合の置換作業をなくすことができます。
また、指定したルート名が存在しない場合エラーを表示してくれるので開発効率も上がります。
最後に
Laravelの便利機能は他にもたくさんあるので、
次回以降のブログでも紹介していきたいと思います。