Ich arbeite in Laravel und ich bin interessiert in der Überprüfung der SQL-Anweisungen von einer Eloquent-Abfrage generiert, die eine With() -Anweisung enthält. Aus irgendeinem Grund bekomme ich nur die Hauptanfrage. Zum Beispiel, wenn ich laufeVerwenden von Laravel toSql auf Abfragen mit 'mit' Klausel
class Child extends EloquentVersioned {
public function childRequests()
{
return $this->hasMany('ChildRequest');
}
}
$childQuery = Child::orderBy('last_name')->orderBy('first_name')->with('childRequests');
return $childQuery->toSql();
ich zurück:
select `children`.* from `children` order by `last_name` asc, `first_name` asc
Wie komme ich zurück, um die SQL für die mit ('childRequests') Abfrage?
Ok, das ist praktisch. Wird die "letzte" Abfrage alle vom Child-Aufruf generierten Abfragen enthalten, oder muss ich irgendwie rückwärts durch dd arbeiten? – dspitzle
'$ queries = DB :: getQueryLog()' Hier werden die '$ Queries' alle Queries in einem Array enthalten und die letzte Query wird nur die letzte enthalten und in diesem Fall werden Sie nicht das bekommen was Sie suchen Denn wenn Sie 'mit' hinter der Szene verwenden, führt' Laravel' eine weitere Abfrage für die Relation aus. –
Gibt es eine Dokumentation der Funktion dd(), die ich auschecken kann? Wenn es Parameter für das Ziehen von Ende-1 gibt, könnte ich genug Schritte zurückgehen, um die Abfragen zu holen, von denen ich weiß, dass sie ausgeführt werden sollten. – dspitzle