Die Zielklasse [Api \ UserController] existiert nicht
Ich bekomme diesen Fehler in Laravel 8 nach der Verwendung von PHP Artisan Route: Liste:
Illuminate \ Contracts \ Container \ BindingResolutionException Die Zielklasse [Api \ UserController] ist nicht vorhanden.
Ich habe einen Controller in App \ Http \ Controllers \ Api:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::all(); return responde()->json($users);
}
}
Routen / api.php:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('users', 'Api\\UserController@index');
Ich bin neu bei Laravel
Antworten
Da Sie die use App\Http\Controllers\Api\UserController
Namespace-Anweisung importieren , können Sie die ::class
Notation für die Controller-Klasse verwenden. Es hat auch zusätzliche Vorteile, da IDE im Gegensatz zu Zeichenfolgen zum Pfad navigieren kann
Seit Laravel 8 ist der Standard-Namespace App\Http\Controllers
vermutlich nicht mehr im RouteServiceProvider definiert, sondern es bleibt dem Entwickler überlassen, den Standard-Namespace zu definieren, indem die Eigenschaft $ namespace mit dem gewünschten Wert festgelegt wird.
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('users', [UserController::class, 'index']);
Auf Larvel 8 können Sie die Route nicht mehr so schreiben wie früher. Die nächste Syntax lautet:
Regler:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
user App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all(); return responde()->json($users);
}
}
api.php:
<?php
use Illuminate\Support\Facades\Route;
Route::get('users', '\App\Http\Controllers\Api\UserController@index');
Oder
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('/Pages', [UserController::class, 'index']);
Dokumente für das Routing