knvegr’s blog

学習メモ

【Laravel】prefixメソッドの使い方

概要

  • 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');
});