Bei der Verwendung eines Controllers in Laravel 8 kann es zu einem Problem kommen Meldung „Fehler „Zielklassen-Controller existiert nicht““, obwohl der Controller vorhanden und lokalisiert ist richtig.
In Laravel 8 werden Namespaces nicht mehr automatisch Routengruppen vorangestellt. Daher müssen Sie den vollständig qualifizierten Klassennamen für Ihre Controller verwenden, wenn Sie Routen ohne Namespace-Präfixe definieren.
Option 1: Vollqualifizierter Klassenname
Verwenden Sie den vollständig qualifizierten Klassennamen für Ihren Controller in der Routendefinition:
Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
Option 2: Namespace in der Routengruppe definieren
Wenn Sie den vorherigen Ansatz bevorzugen, definieren Sie den Namespace explizit innerhalb der relevanten Routengruppe in AppProvidersRouteServiceProvider:
Route::prefix('api') ->middleware('api') ->namespace('App\Http\Controllers') ->group(base_path('routes/api.php'));
Option 3: Kommentieren Sie den Namespace in RouteServiceProvider (Laravel 8.0.2 und höher) aus.
In frischer Form Bei Laravel 8-Installationen seit Version 8.0.2 können Sie die geschützte $namespace-Variable in AppProvidersRouteServiceProvider auskommentieren:
// protected $namespace = 'App\Http\Controllers';
Durch die Implementierung einer dieser Lösungen können Sie das Problem „Der Zielklassen-Controller funktioniert nicht“ beheben Fehler „nicht vorhanden“ und verwenden Sie Ihren Controller erfolgreich in Laravel 8.
Das obige ist der detaillierte Inhalt vonLaravel 8 „Zielklassen-Controller existiert nicht': Wie behebt man Namespace-Probleme in Routen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!