Laravelでルーティングの設定がうまく行かず404が発生する

投稿者: | 2020年2月4日

しっかり /routes/web.php にルーティングを設定しているのに404が発生してなやみました。
web.php の中は次のように記述していました。

Route::resource('event', 'EventController');
Route::get('/event/get_users', 'EventController@getUsers');

この内容で、/event/get_users にアクセスしても 404 が返されて途方にくれました。
なんでかな~といろいろいじっていたところ、次のようにしたらうまく行きました。

Route::get('/event/get_users', 'EventController@getUsers');
Route::resource('event', 'EventController');

もうお分かりですね。
resourceを先に実行すると、event/*** はすべて EventController@show に行ってしまうんですね。当然該当するデータはないので404になります。
resoutceの前に記述すればそちらのルールが先に実行されるので、大丈夫というわけです。