Laravelでrouteを利用して、viewを呼び出す際に、Routeにnameを設定する方法を紹介します。
routes\web.php(Routeを設定しているファイル)で、nameを設定します。
Route::get('/profile', 'mypageController@profile')->name('profile');
記載方法はRouteの最後に、
->name(route名称)でrouteの名称を設定することが出来ます。
nameを設定するメリットについては、Qiitaで分かりやすく解説している方がいたので、ご確認下さい。
Laravel使うならrouteには名前をつけたほうが良い
もう少し使い方について解説します。
Routeでのname設定は、名称を設定しただけです。
これを実際にnameを呼び出して使う方法を紹介します。
routeを使うときは、view bladeの中から呼び出します。
例えば、href にて、リンク先を/profileに設定したい際には、
先ほど、設定したnameを呼び出すカタチで下記のようにリンクに設定します。
<a class="nav-link" href="{{ route('profile') }}">Profile</a>
で、この例だと、ただ、リンクに飛ばしているだけじゃないか、と思うかもしれません。
ここで実験して欲しいのですが
Route:
Route::get('/profile', 'mypageController@profile')->name('profile.gogogo');
View:
<a class="nav-link" href="{{ route('profile.gogogo ') }}">Profile</a>
と設定しても、/profileへリンクされるのです。
nameはただRouteを接続してくれているだけです。
Routeに設定してある、/profileへの接続は変わりません。
もう一点、私が少し混乱したことについて追記します。
Route設定で、group設定を使う人も多くいると思います。
例えば、下記のようにRoute設定した場合
Route::name('admin.')->group(function () { Route::get('/profile', 'mypageController@profile')->name('profile'); });
Viewでname を使って、Routeを呼び出す方法は
<a class="nav-link" href="{{ route(' admin.profile') }}">Profile</a>
group 化のname設定によって、nameがadmin.XXXXと設定する必要が出てきます。