📜  laravel 按日期分组计数 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:48.249000             🧑  作者: Mango

Laravel 按日期分组计数 - PHP

在 Laravel 中,我们可以很容易地按照日期对数据库中的数据进行分组计数。这在生成报告或图表以显示数据趋势时非常有用。

示例

以下示例将展示如何使用 Laravel Eloquent ORM 和 MySQL 来计算按日期分组的数据计数。

假设我们有一个 orders 表,其中包含订单的日期和其他相关信息。我们想要按照日期分组计算订单计数。

以下是如何实现:

首先,我们需要在 Order 模型中定义一个访问器来获取订单日期,这是一个 Carbon 实例:

public function getOrderDateAttribute()
{
    return Carbon::createFromFormat('Y-m-d H:i:s', $this->attributes['created_at'])->format('Y-m-d');
}

然后,我们可以在控制器中查询订单并按日期分组:

$orders = Order::select(DB::raw('DATE(created_at) as date'), DB::raw('COUNT(*) as count'))
                ->groupBy('date')
                ->get();

foreach ($orders as $order) {
    echo $order->date . ' - ' . $order->count . '<br>';
}

上面的代码将输出类似于以下内容:

2022-01-01 - 3
2022-01-02 - 5
2022-01-03 - 7
结论

按日期分组计数是一个常见的任务,特别是在分析时间序列数据时。在 Laravel 中,我们使用 Eloquent ORM 和 MySQL 可以很容易地实现这一点。