Mengatasi Ralat "Kelas Sasaran Tidak Ditemui" dalam Laravel 8
Menghadapi ralat "Pengawal kelas sasaran tidak wujud" apabila bekerja dengan Laravel 8 boleh mengecewakan. Isu ini timbul disebabkan oleh perubahan dalam konfigurasi lalai Laravel yang menghapuskan awalan automatik ruang nama.
Memahami Isu
Dalam versi Laravel sebelumnya, kumpulan laluan secara automatik menerima awalan ruang nama, tetapi tingkah laku ini telah dialih keluar dalam Laravel 8. Akibatnya, apabila merujuk kepada pengawal dalam laluan, Nama Kelas Berkelayakan Penuh (FQCN) mesti digunakan untuk memastikan penyelesaian yang betul.
Pilihan Penyelesaian
// Register route using FQCN Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
a. Tambahkan Ruang Nama pada Kumpulan Laluan:
// Add namespace to 'api' route group Route::prefix('api') ->middleware('api') ->namespace('App\Http\Controllers') ->group(base_path('routes/api.php'));
b. Gunakan Harta $namespace (Pilihan):
// Set namespace property in RouteServiceProvider protected $namespace = 'App\Http\Controllers';
Dengan menetapkan sifat $namespace, anda boleh menjana URL kepada tindakan dengan mudah.
Meningkatkan daripada Versi Laravel Sebelumnya:
Jika anda sedang menaik taraf daripada versi Laravel sebelumnya, anda boleh menyahkomen harta $namespace dalam RouteServiceProvider untuk memulihkan awalan ruang nama automatik untuk laluan.
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Saya Membetulkan Ralat 'Kelas Sasaran Tidak Ditemui' dalam Laravel 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!