Zum Inhalt springen

Glossar

Laravel Eloquent: der Datenbank-Zugriff im Framework

Laravels Werkzeug, um Datenbanktabellen als Objekte anzusprechen, statt SQL von Hand zu schreiben.

Eine Datenbank speichert Zeilen in Tabellen, ein Programm arbeitet mit Objekten. Eloquent ist die Schicht dazwischen. Jede Tabelle bekommt eine Klasse, jede Zeile wird zu einem Objekt dieser Klasse. Statt eine Abfrage zu formulieren, schreibt man Rechnung::find(42).

Der praktische Gewinn liegt bei den Beziehungen. Dass eine Rechnung zu einem Kunden gehört und mehrere Posten hat, wird einmal deklariert und ist danach überall verfügbar. Das erspart eine Menge wiederholter Abfragen und macht den Code lesbar für jemanden, der die Fachlichkeit kennt, aber nicht die Tabellenstruktur.

Worauf zu achten ist

Der bekannteste Stolperstein heißt N+1. Eine Schleife über hundert Rechnungen, die in jedem Durchlauf den zugehörigen Kunden nachlädt, erzeugt hunderteins Abfragen statt zwei. Bei zehn Testdatensätzen fällt das niemandem auf. Bei zehntausend echten liegt die Seite. Abhilfe schafft, die Beziehung gleich mitzuladen.

Der zweite Punkt: Bequemlichkeit verführt dazu, Fachlogik in die Model-Klassen zu schieben, bis sie tausende Zeilen lang sind. Wo die Logik stattdessen hingehört, ist eine Entscheidung, die am Anfang eines Projekts getroffen werden sollte und nicht nach zwei Jahren.

FAQ

Häufige Fragen

Kann man neben Eloquent auch normales SQL benutzen?
Ja, jederzeit. Für aufwendige Auswertungen ist eine direkte Abfrage oft die bessere Wahl, und Laravel steht dem nicht im Weg. Die beiden Wege schließen sich nicht aus.

Verwandt

Begriffe, die dazugehören

Projekt oder Frage?

Schreiben Sie uns, worum es geht. Sie bekommen eine Einschätzung von jemandem, der selbst mit Laravel arbeitet — nicht vom Vertrieb.