Heim > Datenbank > MySQL-Tutorial > Wie berechnet man die Summe mit GroupBy in Laravel Eloquent richtig?

Wie berechnet man die Summe mit GroupBy in Laravel Eloquent richtig?

Barbara Streisand
Freigeben: 2024-12-30 00:11:39
Original
546 Leute haben es durchsucht

How to Correctly Calculate Sum with GroupBy in Laravel Eloquent?

Berechnung der Summe mit GroupBy in Laravel Eloquent

In Laravel bietet das Eloquent ORM eine leistungsstarke Möglichkeit, mit der Datenbank zu interagieren. Eine häufige Aufgabe besteht darin, die Summe einer Spalte zu berechnen und dabei nach einem bestimmten Feld zu gruppieren. Obwohl die Verwendung der sum()-Methode unkompliziert erscheint, kann sie aufgrund der Ausführungsreihenfolge zu Fehlern führen.

Falscher Ansatz

$this->data['no_of_pages'] = Document::sum('no_of_pages')
                            ->groupBy('users_editor_id'); // Call to undefined method
Nach dem Login kopieren

Im obigen Code Die Methode „groupBy()“ wird nach der Methode „sum()“ aufgerufen, was einen Fehler verursacht, da „sum()“ die Abfrage ausführt und das Ergebnis zurückgibt, bevor „groupBy()“ ausgeführt werden kann angewendet.

Richtige Lösungen

Um die Summe mit groupBy korrekt zu berechnen, verwenden Sie die folgenden Ansätze:

Ansatz 1 (empfohlen)

Document::groupBy('users_editor_id')
    ->selectRaw('sum(no_of_pages) as sum, users_editor_id')
    ->pluck('sum', 'users_editor_id');
Nach dem Login kopieren

Diese Methode verwendet die Methode selectRaw(), um einen Alias ​​für die berechnete Summe zu erstellen (Summe). Anschließend extrahiert die pluck()-Methode die Felder sum und users_editor_id und liefert ein assoziatives Array-Ergebnis.

Ansatz 2

Document::groupBy('users_editor_id')
    ->selectRaw('*, sum(no_of_pages) as sum')
    ->get();
Nach dem Login kopieren

Diese Methode erstellt ein Pseudo-ORM Ergebnis durch Hinzufügen eines Summenfelds zu jedem Dokumentmodell. Dies ist jedoch weniger wünschenswert, da das Ergebnis keine echte ORM-Sammlung ist.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Summe mit GroupBy in Laravel Eloquent richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage