ある日laravelのプロジェクトを触っていた時に出会ったエラー
いつも通りweb.phpにroutingを追加、controllerを作成よしアクセスしようと思ったら404 not foundの文字が。
pathはあってる、タイポもしていない、なぜエラーが出るのか理解に時間がかかった。
原因
原因はルーティングの各順番を間違えていた。
初歩的なミスであったが、エラーコードから読み取ることができず時間がかかった。
ルーティングは上から読み込まれるので、hogeでアクセスしたつもりが{user}として読み込まれてしまい上手く動かない。
web.php
Route::get('/users/{user}', 'User@show');
Route::get('/users/hoge', 'User@hoge');
正しくは
web.php
Route::get('/users/hoge', 'User@hoge');
Route::get('/users/{user}', 'User@show');
「/」で区切ってあるならok
web.php
Route::get('/users/{user}', 'User@show');
Route::get('/users/some/hoge', 'User@hoge');
これで解消しなかった場合
cacheを消せば動く可能性がある。
terminal
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
キャッシュの再読み込みなど参考
https://qiita.com/Ping/items/10ada8d069e13d729701