按天对 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中文网其他相关文章!