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'.

Cara Mengatasi Target class controller does not exist Laravel

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