Laravel Eloquent: Die Kunst des Summierens mit GroupBy beherrschen
Bei der Arbeit mit Laravel Eloquent gibt es Zeiten, in denen Sie die Summe berechnen müssen einer bestimmten Spalte, während die Ergebnisse nach einer anderen Spalte gruppiert werden. Die Verwendung des herkömmlichen Ansatzes von sum() gefolgt von groupBy() kann jedoch zu einem Fehler führen. Dies liegt daran, dass sum() die Abfrage sofort ausführt und kein Objekt übrig bleibt, auf das groupBy() angewendet werden kann.
Die Antwort: Kompetente Lösung zum Gruppieren und Summieren
Zu bewältigen Für dieses Problem besteht die Lösung darin, die folgende Codestruktur zu verwenden:
Document::groupBy('users_editor_id') ->selectRaw('sum(no_of_pages) as sum, users_editor_id') ->pluck('sum','users_editor_id');
Dieser Code wird durch groupBy() in der Spalte „users_editor_id“ verwendet selectRaw(), um die Summenberechnung anzugeben. Schließlich extrahiert pluck() die Werte „sum“ und „users_editor_id“ in ein Array.
Alternativ können Sie diesen Ansatz verwenden:
Document::groupBy('users_editor_id') ->selectRaw('*, sum(no_of_pages) as sum') ->get();
Diese Methode gibt eine Sammlung von Dokumentmodellen mit einem Zusatz zurück Summenfeld, das eine etwas andere Darstellung der Gruppierung bietet Daten.
Fazit
Wenn Sie das Zusammenspiel zwischen groupBy() und sum() verstehen und die Methode selectRaw() nutzen, können Sie beim Gruppieren von Ergebnissen mühelos Summen berechnen Laravel Eloquent stärkt Ihre Datenanalysefähigkeiten.
Das obige ist der detaillierte Inhalt vonWie summiert und gruppiert man in Laravel Eloquent richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!