profile
西村 祐真
@variant3a
Laravelのルーティング順による404エラーの対処法
calendar_today
2022-07-16
insights
views: 645
thumbnail images

経緯

ある日、某サイトのシステム改修を行っていたときのこと。
createに飛んでも404エラーが出る....

でもcreateはlaravel resource controllerのRouteを利用しているので、ちゃんと生成されているはず....

Route::resource('posts', PostController::class)->only([
    'index',
    'show',
]);

Route::middleware(['auth:sanctum', config('jetstream.auth_session'), 'verified'])->resource('posts', PostController::class)->except([
    'index',
    'show',
]);

解決

ということで調べてみたところ、こんな記事があった。

Laravel 404 Not Foundエラーはルーティング順に原因があった
https://zenn.dev/keitaro_code/articles/632ef95cad98a4

ということで、とりあえずRouteの記述順を変えてみることに。

Route::middleware(['auth:sanctum', config('jetstream.auth_session'), 'verified'])->resource('posts', PostController::class)->except([
    'index',
    'show',
]);

Route::resource('posts', PostController::class)->only([
    'index',
    'show',
]);

こうしてcreateにアクセスしてみると、ちゃんと遷移できました。

これで小一時間使った.......

calendar_today
2022-07-16
insights
views: 645