ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 8で「ターゲットクラスコントローラーが存在しません」エラーを修正する方法は?

Laravel 8で「ターゲットクラスコントローラーが存在しません」エラーを修正する方法は?

Mary-Kate Olsen
リリース: 2024-12-19 19:29:12
オリジナル
378 人が閲覧しました

How to Fix the

Laravel 8 での「ターゲット クラス コントローラーが存在しない」エラーの修正

Laravel 8 を使用すると、次のエラーが発生する場合があります。ターゲット クラス [ApiRegisterController] が存在しません。」これは、Laravel がルート グループ内の名前空間プレフィックスを処理する方法が変更されたために発生します。

Laravel 8 では、以前はコントローラー ルート定義にプレフィックスを追加していた RouteServiceProvider の $namespace プロパティが、次によって null に設定されます。デフォルト。これは、ルート内のコントローラーを参照するときに完全修飾クラス名を使用する必要があることを意味します。

この問題を解決するには、いくつかのオプションがあります:

完全修飾クラス名を使用する:
ルート内のコントローラーの完全修飾クラス名を使用します。例:

Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
ログイン後にコピー

ルート グループの名前空間プレフィックスの定義:
古い方法を好む場合は、RouteServiceProvider でルート グループの名前空間プレフィックスを定義できます。その方法は次のとおりです:

public function boot()
{
    ...

    Route::prefix('api')
        ->middleware('api')
        ->namespace('App\Http\Controllers')
        ->group(base_path('routes/api.php'));

    ...
}
ログイン後にコピー

$namespace プロパティの設定:
RouteServiceProvider の $namespace プロパティのコメントを解除することがいくつかのソースで言及されていますが、これは URL 生成にのみ影響します。

Update for Laravel 8.0.2 以降:
バージョン 8.0.2 以降の Laravel 8 の新しいコピーをインストールしている場合は、RouteServiceProvider 内の保護された $namespace メンバー変数のコメントを解除して、古い動作に戻すことができます。

重要なのは、ルート グループの名前空間プレフィックスを定義することです。好みに応じて、上記のいずれかの方法を選択できます。 Laravel 8 の「ターゲット クラス コントローラーが存在しません」エラーを修正します。

以上がLaravel 8で「ターゲットクラスコントローラーが存在しません」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート