LoginSignup
197
154

More than 3 years have passed since last update.

Laravel使うならrouteには名前をつけたほうが良い

Last updated at Posted at 2018-03-22

Laravelにはルートに名前をつける機能があります。

routes/web.php
Route::get('users/{id}/profile', function () {
    //
})->name('user.profile');

この時、view側で

views/index.blade.php
{{ route('user.profile', ['id' => 1]) }}

このようにするとroute名に従ってuser/1/profileのようなurlが生成されます。

利点

名前を付けなくても、当然アクセスすることはできますが、以下の3つの利点があるので名前をつける運用をしていった方が良いかなと思います。

  • URLを一括で変更することが出来る
  • 存在しないurlの時にエラーになる
  • (PHPStormを使っている場合)補完される

URLを一括で変更することが出来る

view側で

{{ url('/users/1/profile') }}

のように書いてしまうと、URLを変更することになった場合、viewの中から同じ箇所を探さないといけませんが、

{{ route('user.profile', ['id' => 1]) }}

としていればroutes/web.phpだけ変更すれば良いです。

存在しないurlの時にエラーになる

url('/users/1/profile')

の場合、そのURLが存在する保証はありませんが、

route('user.profile', ['id' => 1])

の場合そのルートが存在しなければエラーになります。

(PHPStormを使っている場合)補完される

PHPStormを使っていてLaravelプラグインを使っていると、route関数を使おうとすると補完されます。

スクリーンショット_2019-05-16_14_59_03.jpg

197
154
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
197
154