Heim >Datenbank >MySQL-Tutorial >Wie kann ich Laravel Eloquent-Ergebnisse nach Tagen gruppieren?
Gruppieren von Laravel Eloquent-Ergebnissen nach Tagen
Wenn Sie mit einer Tabelle arbeiten, die Datensätze enthält, die die Benutzeraktivität verfolgen, kann die Gruppierung nach Tagen hilfreich sein, um Ergebnisse zu erhalten Einblicke in Verkehrsmuster. Das Vorhandensein unterschiedlicher Zeiten für jeden Datensatz kann jedoch eine genaue Gruppierung behindern.
Lösung 1: DB::Raw-Abfrage
Um eine tagesbasierte Gruppierung zu erreichen, verwenden Sie die DATE()-Funktion in MySQL. Diese Funktion entfernt Zeitkomponenten aus Zeitstempeln, was zu reinen Daten führt.
DB::table('page_views') ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views')) ->groupBy('date') ->get();
Lösung 2: Eloquente Abfrage mit Carbon
Um innerhalb des Laravel Eloquent-Frameworks zu bleiben, Nutzen Sie Carbon zur Datumsmanipulation. Die erste WHERE-Klausel filtert Datensätze, die innerhalb des letzten Monats erstellt wurden. Die Gruppierung nach Datum und die Sortierung danach in absteigender Reihenfolge gewährleisten eine chronologische Darstellung.
<code class="php">$visitorTraffic = PageView::where('created_at', '>=', \Carbon\Carbon::now()->subMonth()) ->groupBy('date') ->orderBy('date', 'DESC') ->get(array( DB::raw('Date(created_at) as date'), DB::raw('COUNT(*) as "views"') ));</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Laravel Eloquent-Ergebnisse nach Tagen gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!