Cara Mengatasi Error Target Class Does Not Exist di Laravel

Salah satu error yang sering membingungkan pemula Laravel adalah: Illuminate\Contracts\Container\BindingResolutionException: Target class [App\Http\Controllers\HomeController] does...

Cara Mengatasi Error Target Class Does Not Exist di Laravel

Salah satu error yang sering membingungkan pemula Laravel adalah:

Illuminate\Contracts\Container\BindingResolutionException:
Target class [App\Http\Controllers\HomeController] does not exist.

Error ini muncul saat Laravel gagal menemukan controller yang Anda daftarkan di route. Berikut penyebab paling umum dan solusinya.

1. Salah Menulis Nama atau Namespace Controller

Pastikan cara Anda mendaftarkan route sesuai versi Laravel. Di Laravel 8+, gunakan sintaks class yang eksplisit:

use App\Http\Controllers\HomeController;

Route::get('/', [HomeController::class, 'index']);

Hindari sintaks string lama 'HomeController@index' kecuali Anda mengatur namespace controller secara manual di RouteServiceProvider.

2. Namespace di File Controller Salah

Buka file controllernya dan pastikan deklarasi namespace di baris atas benar dan sesuai lokasi folder:

<?php
namespace App\Http\Controllers;

class HomeController extends Controller
{
    public function index() { /* ... */ }
}

Jika controller ada di subfolder (mis. Controllers/Admin), namespace-nya harus App\Http\Controllers\Admin.

3. Composer Autoload Belum Diperbarui

Kalau Anda baru membuat controller (apalagi manual, bukan lewat artisan), Composer mungkin belum mengenalinya. Regenerasi autoload:

composer dump-autoload

Ini solusi yang paling sering berhasil untuk error "class not found" setelah menambah file baru.

4. Nama File Tidak Cocok dengan Nama Class

Laravel memakai PSR-4 autoloading, jadi nama file harus sama persis dengan nama class, termasuk huruf besar/kecil. Class HomeController wajib berada di file HomeController.php โ€” bukan homecontroller.php. Ini sering jadi masalah saat pindah dari Windows (case-insensitive) ke server Linux (case-sensitive).

5. Cache Route Lama

Jika route ter-cache sebelum controller dibuat, bersihkan:

php artisan route:clear
php artisan config:clear

Checklist Cepat

  • Route memakai sintaks [NamaController::class, 'method'] + use?
  • Namespace di file controller benar?
  • Sudah jalankan composer dump-autoload?
  • Nama file sama persis dengan nama class (case-sensitive)?
  • Sudah route:clear?

Kesimpulan

Error "Target class does not exist" hampir selalu soal namespace, penulisan nama, atau autoload yang belum diperbarui. Mulai dari memeriksa route & namespace, lalu jalankan composer dump-autoload โ€” dua langkah ini menyelesaikan mayoritas kasus. Ingat pula soal case-sensitive saat aplikasi Anda berjalan di server Linux.

target class does not exist class not found laravel error controller laravel laravel route controller composer dump-autoload
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’