![見出し画像](https://assets.st-note.com/production/uploads/images/118372028/rectangle_large_type_2_7332bdd26f22bc8ad27882986a4fb68d.png?width=1200)
Photo by
glue_ar
【IT】Laravelでエラー「Target class [○○○○Controller] does not exist.」の対応
皆さま
こんにちは
Laravelである教材を使って自身のMAMP環境で再現しようとした時に
エラーとなりました。
その時の対応メモとなります。
前提として
Articleという名前でコントローラーとモデルを作成しておきます。
マイグレートも行っておきます。
$ php artisan make:model Article -m -c -r
$ php artisan migrate
ルーティングとコントローラーを記述してページにアクセスすると
以下のエラーとなりました。
![](https://assets.st-note.com/img/1696771691960-mS67ju61fU.jpg?width=1200)
問題は、教材で使用していたバージョンの環境が古く
現在のバージョン10では、記述方法が変更となったようです。
※この書き方は、バージョン8から変更となったようです。
直し方は2パターンあります。
修正対象は、「routes\web.php」です。
1つ目のパターン:useでコントローラーをインポート
・
・
use Illuminate\Support\Facades\Route;
// 追加
use App\Http\Controllers\ArticleController;
・
・
・
//Route::get('/articles', 'ArticleController@index')->name('article.list');
// 変更 ↓
Route::get('/articles', [ArticleController::class, 'index'])->name('article.list');
2つ目のパターン:完全修飾名でコントローラーを指定
・
・
//Route::get('/articles', 'ArticleController@index')->name('article.list');
// 変更 ↓
Route::get('/articles', 'App\Http\Controllers\ArticleController@index')->name('article.list');
修正後、無事表示されました。
![](https://assets.st-note.com/img/1696772731361-MHRwM2YisZ.jpg?width=1200)
では