laravel8.xを使っていると次のようなエラーが出てくる時があります。
Route::get('hoge/', [HogeController::class, 'show']);
Route::get('hoge/', 'HogeController@show');
Target class [HogeController] does not exist.
原因
このエラーが出てきている原因は書いてある通り、"HogeControllerが存在しないよ"ってエラーです。
そんなこと言われてもこっちはコマンドで作ってるんだが、、っていう文句を言いたくなりますが、、、
対策
対策には2パターンあります。
対策①:XxController@showと書いている人
私もこのパターンでした。これまではうまくいっていたのにと思っていましたが、
いつからか以下のように書かなければならないようになっているみたいです。
Route::get('hoge/', 'App\Http\Controllers\HogeController@show');
あんまりよくないな。。。と思ってこれからは対策②のように書こうかなと思っています。
対策②:[HogeController::class, 'show']と書いている人
ソースに一行追加して下さい。
use App\Http\Controllers\HogeController;