Cara Mengatasi Target class controller does not exist Laravel
Saat pertama kali mengintsall laravel dan kemudian mencoba membuat sebuah controller, Saya menemukan sebuah masalah dengan pesan error 'Target class controller does not exist'.
Dan ternyata masalah ini diakibatkan oleh karena pada laravel 8 tidak mendefinisikan namespace route ke controller secara otomatis, sehingga munculah pesan Target class [nama_class] controller does not exist. Jadi pada versi laravel sebelumnya untuk mengakses controller pada routes, kita menuliskannya dengan syntax seperti berikut :
Route::get('dosen', 'DosenController@index');
Cara Mengatasi Target class controller does not exist Laravel
Untuk mengatasi masalah ini ada beberapa cara yang bisa Anda gunakan
<?php
use App\Http\Controllers\MainController;
Route::get('/',[MainController::class,'index']);
#atau bisa gunakan cara seperti ini
Route::get('/tes',[App\Http\Controllers\MainController::class,'index']);
Walaupun cara diatas cukup merepotkan tetapi memang cara tersebut merupakan cara yang direkomendasikan oleh Laravel 8, jika Anda tidak ingin menulisnya dengan cara diatas, dan ingin yang lebih simpel. Anda bisa menggunakan cara kedua
Cara Kedua Mengatasi Target class controller does not exist Laravel
Cara selanjutnya Anda bisa mendefinisikan $namespace pada RouteServiceProvider.php pada app/Providers seperti berikut ini :
protected $namespace = 'App\\Http\\Controllers';
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
}
Dengan cara menmabhakan $namespace seperti diatas Anda bisa mendefinisikan nilai pada routes seperti pada versi laravel sebelumnya
0 Response to "Cara Mengatasi Target class controller does not exist Laravel"
Post a Comment
Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin