<- Zurück zum Blog
laravel-app-not-found.png

OnLouis Labs 2026

Veröffentlicht am 25. Februar 2026

Ein typischer Laravel-Fehler – „Class not found“ einfach erklärt

Der „Class not found“-Fehler gehört zu den häufigsten Problemen in Laravel-Projekten. In diesem Beitrag erfährst du, warum dieser Fehler entsteht, welche typischen Ursachen dahinterstecken und wie du ihn schnell und sauber behebst.

Ein typischer Laravel-Fehler: „Class not found“ verstehen und beheben

Wer mit Laravel arbeitet, wird früher oder später auf die Fehlermeldung „Class not found“ oder „Target class does not exist“ stoßen. Besonders in wachsenden Projekten mit mehreren Controllern, Models oder Namespaces tritt dieses Problem häufiger auf. Die gute Nachricht: In den meisten Fällen lässt sich der Fehler schnell beheben.

Was bedeutet „Class not found“ in Laravel?

Die Fehlermeldung bedeutet schlicht, dass Laravel eine bestimmte Klasse nicht finden oder nicht korrekt laden kann. Das betrifft häufig Controller, Models oder Service-Klassen.

Typische Fehlermeldungen sehen zum Beispiel so aus:

Class "App\Models\User" not found
Target class [CustomerController] does not exist.

Die Ursache liegt fast immer in der Projektstruktur oder im Autoloading.

Die häufigsten Ursachen für den Fehler

1. Falscher oder fehlender Namespace

Ein häufiger Grund ist ein nicht korrekt eingebundener Namespace. Wenn sich dein Controller beispielsweise in einem Unterordner befindet, muss der vollständige Namespace angegeben werden.

namespace App\Http\Controllers\Admin;

Wird der Controller anschließend in der Route ohne korrekten Import verwendet, entsteht der Fehler.

Die Lösung ist in der Regel ein sauberer use-Import:

use App\Http\Controllers\Admin\CustomerController;

2. Falsche Ordnerstruktur

Laravel folgt dem PSR-4-Standard. Das bedeutet: Ordnerstruktur und Namespace müssen exakt übereinstimmen. Liegt eine Datei im falschen Verzeichnis, kann sie nicht geladen werden.

app/
 ├── Models/
 ├── Http/
 │    ├── Controllers/

Schon kleine Abweichungen führen hier zu Problemen – insbesondere auf Linux-Servern.

3. Autoload wurde nicht aktualisiert

Nach dem Anlegen neuer Klassen kann es vorkommen, dass Composer den Autoload noch nicht aktualisiert hat. In diesem Fall hilft folgender Befehl:

composer dump-autoload

Dadurch wird der Klassen-Loader neu generiert.

4. Groß- und Kleinschreibung auf dem Server

Während Windows-Dateisysteme oft tolerant sind, sind Linux-Server case-sensitive. Das bedeutet, dass bereits eine falsche Groß- oder Kleinschreibung zum Problem führt.

customerController.php   // falsch
CustomerController.php   // korrekt

„Target class does not exist“ seit Laravel 8

Seit Laravel 8 funktioniert die alte Schreibweise in Routen nicht mehr automatisch:

Route::get('/customers', 'CustomerController@index');

Stattdessen sollte die moderne Klassenreferenz verwendet werden:

use App\Http\Controllers\CustomerController;

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

Best Practices zur Vermeidung

  • Controller und Models immer mit Artisan erstellen (php artisan make:controller, php artisan make:model)
  • Auf eine saubere PSR-4-Struktur achten
  • Nach neuen Klassen composer dump-autoload ausführen
  • Groß- und Kleinschreibung konsequent korrekt verwenden

Fazit

Der Laravel-Fehler „Class not found“ wirkt auf den ersten Blick schwerwiegend, ist aber fast immer auf eine fehlerhafte Struktur oder einen fehlenden Namespace zurückzuführen. Mit einer sauberen Projektorganisation und einem klaren Verständnis des Autoload-Systems lässt sich das Problem schnell identifizieren und beheben.

Wer strukturiert arbeitet und die Laravel-Standards einhält, wird diesem Fehler in Zukunft deutlich seltener begegnen.