Apabila menggunakan pengawal dalam Laravel 8, anda mungkin menghadapi masalah Mesej "Ralat "Pengawal kelas sasaran tidak wujud"" walaupun pengawal hadir dan berada dengan betul.
Dalam Laravel 8, ruang nama tidak lagi didahulukan secara automatik untuk menghalakan kumpulan. Oleh itu, anda mesti menggunakan nama kelas yang layak sepenuhnya untuk pengawal anda apabila mentakrifkan laluan tanpa awalan ruang nama.
Pilihan 1: Nama Kelas Berkelayakan Penuh
Gunakan nama kelas yang layak sepenuhnya untuk pengawal anda dalam laluan definisi:
Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
Pilihan 2: Tentukan Ruang Nama dalam Kumpulan Laluan
Jika anda lebih suka pendekatan sebelumnya, tentukan ruang nama secara eksplisit dalam kumpulan laluan yang berkaitan dalam AppProvidersRouteServiceProvider:
Route::prefix('api') ->middleware('api') ->namespace('App\Http\Controllers') ->group(base_path('routes/api.php'));
Pilihan 3: Nyahkomen Ruang Nama dalam RouteServiceProvider (Laravel 8.0.2 dan Lebih Tinggi)
Dalam pemasangan Laravel 8 baharu sejak versi 8.0.2, anda boleh menyahkomen pembolehubah $namespace yang dilindungi dalam AppProvidersRouteServiceProvider:
// protected $namespace = 'App\Http\Controllers';
Atas ialah kandungan terperinci Laravel 8 'Pengawal Kelas Sasaran Tidak Wujud': Bagaimana untuk Membetulkan Isu Ruang Nama dalam Laluan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!