エラー: Laravel 8 で「ターゲット クラス コントローラーが存在しません」
Laravel 8 を使用すると、「ターゲット クラス コントローラーが存在しません」というエラーが発生することがあります。クラスが正しい場所にあるにもかかわらず、クラス [ApiRegisterController] が存在しません」というメッセージが表示されます。このエラーは、Laravel 8 での名前空間処理の変更が原因で発生します。
以前は、コントローラーには RouteServiceProvider で定義された名前空間が自動的にプレフィックスとして付けられていました。ただし、Laravel 8 では、この接頭辞はデフォルトでは適用されなくなりました。そのため、ルート内でコントローラーを参照する場合は、コントローラーの完全修飾クラス名を明示的に定義する必要があります。
解決策 1: 完全修飾クラス名
これを解決するには問題が発生した場合は、ルート内のコントローラー参照を完全修飾クラスに置き換えてください。 name:
Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
解決策 2: 名前空間のプレフィックス
または、RouteServiceProvider:
protected $namespace = 'App\Http\Controllers';
解決策 3: 名前空間グループを使用する
api.php ルート ファイル内で、名前空間グループを定義して、特定のルートに名前空間を適用できます。Route::group(['namespace' => 'Api'], function () { Route::get('register', 'RegisterController@register'); });
追加注
以上がLaravel 8 が「ターゲット クラス コントローラーが存在しません」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。