URLのパスにname()で名前をつけていろんな箇所でパスを呼び出せる
実務業務で実際にプロジェクト関わるまでの未経験時代ではweb.phpに定義したパス(URL)をbladeやコントローラ等で直接URL指定して呼び出してましたが、定義したパスにname()で名前指定して呼び出すことで色々便利と感じました!
メリット
- 定義したパスにname()で名前をつけることで長いURLを毎回書く必要ないこと
- もしURLが変わった場合、パスを呼び出してるファイル全部修正しなければならないという面倒なことをしなくても、web.phpやapi.phpに定義したURLだけ修正するだけでいいのが最大のメリットかなと思います
- name()で名前を付けておくと、そのパスの使用目的をざっくり把握できること
name()の書き方
// 未経験時代(コントローラ呼び出しもいちいち階層指定でやってた...)
Route::get('/main', 'App\Http\Controllers\FoodController@show');
Route::get('/foods/update/{id}', 'App\Http\Controllers\FoodController@foodUpdate');
// 実務経験後
Route::get('/foods/{id}/test-name', [FoodController::class, 'testShow'])->name('foods.test-name.show');
パスの呼び出し方
// パスを呼び出かた、未経験時代
<a href="/main"
<a href="/foods/update/{{ $data->id }}"
// パスを呼び出かた、実務経験後
<a href={{route('foods.test-name.show',['id' => $userId])}}>testShow</a>