概要
- URLからユーザーのidを取り出したいためルートパラメーターを以下のように定義した。
Route::post('users/{id}/match', 'UserMatchController@store')->name('user.match');
Route::delete('users/{id}/unmatch', 'UserMatchController@destroy')->name('user.unmatch');
ソースの問題点
- 今はまだusers/{id}を定義しているrouteが2つしかないが今後増えていく可能性が高い。
- ルートパラメーターの変更が発生した場合、対象のrouteを1つずつ修正しなければならない。
- 修正漏れ等のリスク。
改善策
- ルートプレフィックスの定義
- 以下のように記載するとグループ内の全ルートのURIに'users/{id}'が付く
Route::group(['prefix' => 'users/{id}'], function () {
Route::post('match', 'UserMatchController@store')->name('user.match');
Route::delete('unmatch', 'UserMatchController@destroy')->name('user.unmatch');
});