按天對Laravel Eloquent 結果進行分組
當使用包含追蹤使用者活動的記錄的表時,以天分組對於取得對流量模式的洞察。然而,每筆記錄存在不同時間會妨礙準確分組。
解決方案 1:DB::Raw Query
要實現基於天的分組,請利用MySQL 中的 DATE() 函數。此函數從時間戳中移除時間成分,得到純日期。
DB::table('page_views') ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views')) ->groupBy('date') ->get();
解決方案 2:使用 Carbon 進行 Eloquent 查詢
要保留在 Laravel Eloquent 框架內,利用 Carbon 進行日期操作。第一個 where 子句過濾上個月內建立的記錄。按日期分組並按降序排序可確保按時間順序呈現。
<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>
以上是如何按天將 Laravel Eloquent 結果分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!