【Laravel】名前付きルートの実装方法

#Laravel
written by みよしや

こんにちは、みよしやです。

今回は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の便利機能は他にもたくさんあるので、
次回以降のブログでも紹介していきたいと思います。