Laravel 8 をインストールして、とりあえずCRUDシステム作って8系がどんな感覚か確かめようとして、すぐにつまづいた…(; ・`д・´)
エラーがでたのはルーティングが正しく記述されていなかったのが理由でした。
注意すべきルーティングの設定
Laravel8のルーティングは今までのルーティングと記述の仕方が少しことなります。https://readouble.com/laravel/8.x/ja/routing.html
Laravel8のルーティングを定義する場合、
Route::resource('/blogs', BlogController::class);
こんな感じで記述しています。
ここで注意しなければならないのが、ルート定義ファイル web.php
の冒頭にルート定義で使用されているコントローラの名前空間をuseキーワードを使用して書くということです。
上記の例でいえば
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\BlogController;
Route::resource('/blogs', BlogController::class);
BlogControllerクラスを使用しているならば、**use App\Http\Controllers\BlogController;
**と記述してインポートしてください。これを書き忘れると、「Target class [コントローラ名] does not exist」とエラーがでてしまいます。
上記ではリソースフルなルート設定をしましたが、普通にルーティングする場合は、
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\BlogController;
Route::get('/blogs', [BlogController::class, 'index']);
第2引数のところは配列になっていますのでご注意ください。もちろん、この記述でもuse App\Http\Controllers\BlogController;
を忘れずに!