未分類

Laravelで`Target class [XXController] does not exist.`が出てきたときの対策

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;

-未分類