Laravel Eloquent: Hilfsfunktion zum Datenbank-Debugging
Bei der Arbeit mit Laravel Eloquent, können Datenbankabfragen sehr komplex werden und Fehler schleichen sich schnell ein. Diese zu finden, stellt sich oft als kompliziert heraus. Gerade wenn man im Eifer des Gefechts, einen Code kopiert, aber diesen nicht vollständig angepasst hat, man vergessen hat einen Variablen-Namen abzuändern oder man bestehende Software-Projekte ohne Kontrolle übernimmt. Die tatsächliche Datenbank Abfrage kann hier schnell weiterhelfen.
Beispiel:
Die Schedule Tabelle beinhaltet ein gewachsenes Konstrukt, der User erhält den Primary-Key der Benutzer Tabelle. In diesem Fall eine numerische ID:
Vorbereitung:
Um zu Starten, benötigen wir die HelperServiceProvider App (app/Providers/HelperServiceProvider.php). In dieser Datei werden die „Helper“ (Hilfsfunktionen) registriert. Der HelperServiceProvider liest alle Dateien im Ordner „app/Helpers“ und bindet diese automatisch ein.
Der HelperServiceProvider muss im Anschluss noch in der App registriert werden. Dazu ergänzt man in der Datei config/app.php, im Abschnitt „providers“, den neu erstellten HelperSeviceProvider:
Funktionen:
Wie man in der dritten Zeile sieht, verwenden wir für die Hilfsfunktion, den Builder von Eloquent: (https://laravel.com/docs/8.x/eloquent). Daten die fälschlicherweise eingegeben wurden, erhalten somit eine Fehlermeldung. ddsql($query->get())
Nachdem man die oben genannte Datei vervollständigt hat, kann man die Funktion „ddsql()“ in seinem Code verwenden. Hier ein Beispiel der Funktion im Einsatz (hierzu wurde ein block Code von der Seite https://laravel.com/docs/8.x/eloquent#advanced-subqueries verwendet):
Dieses Vorgehen bietet einen guten Einstiegspunkt, um an der Performance Schraube zu drehen.