按周获取最近n个月的数据组 - Laravel

时间:2017-03-16 00:07:29

标签: php mysql laravel laravel-5.4 laravel-eloquent

我想在Laravel中按周过滤4个月的数据。这是我目前的代码:

$analytics =
        Data::select([
            DB::raw('WEEK(p_date_time) AS week'),
            DB::raw('COUNT(id) AS count'),
        ])
            ->where('p_id', $p_id)
            ->where('p_date_time', '>=', Carbon::now()->subMonth(4))
            ->groupBy('week')
            ->orderBy('week')
            ->get()
            ->toArray();

此代码根据数据提供了52个结果,为期1年(因为我正在使用WEEK)。但过去4个月我需要大约17个结果。

我可以通过收集每一天然后在过去4个月中将7天数据添加为块来实现这一目标,但我如何仅通过查询来实现?

感谢。

1 个答案:

答案 0 :(得分:0)

也许只是你的Carbon查询中的拼写错误。将subMonth(4)更改为subMonths(4)。随着'。