🙃
LaravelのRoute::resource, Route::apiResourceのルート名にprefixをつける方法
LaravelのRoute::resourceやRoute::apiResourceにルート名にprefixをつけたい場合があったので、調べて実装してみました。
Laravelのルーティングで Route::resourceを用いると勝手に自動でルート名がつきます
Route::resource('users', 'UserController');
Verb | URI | RouteName |
---|---|---|
GET | /users | users.index |
GET | /users/create | users.create |
POST | /users | users.store |
GET | /users/{user} | users.show |
GET | /users/{user}/edit | users.edit |
PU/PATCH | /users/{user} | users.update |
DELETE | /users/{user} | users.destroy |
このルート名にprefixを付ける場合は第三オプションにasをつけてあげます。
Route::resource('users', 'UserController', ['as' => 'admin']);
するとルート名はこのように変化します
Verb | URI | RouteName |
---|---|---|
GET | /users | admin.users.index |
GET | /users/create | admin.users.create |
POST | /users | admin.users.store |
GET | /users/{user} | admin.users.show |
GET | /users/{user}/edit | admin.users.edit |
PU/PATCH | /users/{user} | admin.users.update |
DELETE | /users/{user} | admin.users.destroy |
ちなみに、このRoute::resourceだけでなく、他のところもルート名にprefixを付けたい場合は、ルートグループにasを指定すればOKです。
例えばこのような感じです。
Route::prefix('admin')->as('admin')->group(function () {
Route::resource('users', 'UserController');
});
というわけで今回はルート名にprefixをつける方法を使ってみました。
また何か学んだことがあったらどんどん発信していきたいと思います!
Discussion