見出し画像

【IT】Laravelでエラー「Target class [○○○○Controller] does not exist.」の対応

皆さま
こんにちは

Laravelである教材を使って自身のMAMP環境で再現しようとした時に
エラーとなりました。
その時の対応メモとなります。

前提として
Articleという名前でコントローラーとモデルを作成しておきます。
マイグレートも行っておきます。

$ php artisan make:model Article -m -c -r
$ php artisan migrate

ルーティングとコントローラーを記述してページにアクセスすると
以下のエラーとなりました。

問題は、教材で使用していたバージョンの環境が古く
現在のバージョン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');

修正後、無事表示されました。

では

この記事が気に入ったらサポートをしてみませんか?