コハクウェブデザイン

【解決】Laravelのバージョン8以降でTarget class does not exist.コントローラーが無い!?

Laravelバージョン8系はルーティングの書き方が変わってるっぽい気がします。
いつものようにこんな風に書くと。。。

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HelloController;

Route::get('/hello', 'HelloController@index');
Target class [HelloController] does not exist.

こんな感じでコントローラーが無いよとエラーページが表示されてしまいます。
スペル間違いとか名前空間を間違ってるわけでもなさそう。

そこでマニュアルをチェックしてみると以下の様に書きなさいと書いてありました( https://laravel.com/docs/8.x/routing#the-default-route-files ) ↓

use App\Http\Controllers\UserController;

Route::get('/user', [UserController::class, 'index']);

つまり僕のコードではこうです↓

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HelloController;

Route::get('/hello', [HelloController::class, 'index']);

書き方変わってる。

ちゃんとマニュアル読まなアカンね(笑)