Kelas target [Api \ UserController] tidak ada
Saya mendapatkan kesalahan ini di Laravel 8 setelah menggunakan php artisan route: list:
Illuminate \ Contracts \ Container \ BindingResolutionException Kelas target [Api \ UserController] tidak ada.
Saya memiliki pengontrol di 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);
}
}
rute / api.php:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('users', 'Api\\UserController@index');
Saya baru di Laravel
Jawaban
Karena Anda mengimpor use App\Http\Controllers\Api\UserControllerpernyataan namespace, Anda dapat menggunakan ::classnotasi untuk kelas kontroler. Ini juga akan memiliki manfaat tambahan karena IDE akan dapat menavigasi ke jalur tidak seperti string
Sejak Laravel 8, saya kira namespace default tidak lagi didefinisikan App\Http\Controllersdi RouteServiceProvider, melainkan diserahkan kepada pengembang untuk menentukan namespace default dengan menyetel properti $ namespace dengan nilai yang diinginkan.
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('users', [UserController::class, 'index']);
Di Larvel 8 Anda tidak dapat mengatur rute seperti dulu, sintaks berikutnya adalah ini
Pengontrol:
<?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');
Atau
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('/Pages', [UserController::class, 'index']);
Dokumen untuk perutean