【概要】
1.結論
2.Target class ...Controller does not exist.はどういう意味か
3.どのように変更するか
4.なぜTarget class ...Controller does not exist.になるのか
5.開発環境
1.結論
web.phpのルーティングの書き方を変更する!
2.Target class ... Controller does not exist.はどういう意味か
目的である....コントローラーがないよ!と言っています。つまり、
❶何かしらの原因でコントローラーがいないことになっている
❷何かしらの原因でルーティング➡︎コントローラーへと指示がいっていない
という可能性があります。
3.どのように変更するか
今回は❷でした。
正しい書き方は2種類あります。
i)絶対パスを記載する
Route::get('/person' , 'App\Http\Controllers\UserController@index' );
ii)useを使用してルートを設定
#省略
use App\Http\Controllers\UserController;
Route::get('/user', [UserController::class, 'index']);
自分が記載した間違った方法は以下のようでした。(Laravel6.xでは使用可能) `iii)パスを省略して記載`
Route::get('User' , 'UserController@index' );
4.なぜTarget class ...Controller does not exist.になるのか
LaravelのVersionが原因でした。Laravel6.x
では3.iii)
の方法で記載できましたが、Laravel8.x
では3.i)orii)
でないとダメみたいです。下記の参照URLにて詳しく書かれています。
参考にさせていただいたURL:
Laravel8を試したら即効でエラー「Target class [〇〇〇Controller] does not exist.」が表示された
5.開発環境
PHP 7.4.10
Laravel 8.9
Apache 2.4.41
Mysql 5.6.47
Sequl Pro 1.1.2