【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');
修正後、無事表示されました。
では