按月提取每个状态的计数

时间:2019-12-20 14:24:42

标签: laravel laravel-5 eloquent

我有以下数据库:

Reservations
| id | status    | created_at          |
|  1 | Canceled  | 2019-12-16 11:46:11 |
|  2 | Fulfilled | 2019-11-15 23:03:24 |
|  3 | Accepted  | 2019-12-13 12:04:13 |

所以我想按月提取其中每个状态计数的集合。 即:

['Month', 'Accepted', 'Fulfilled', 'Canceled'],
['Jul 2019', 4, 5, 9],
['Aug 2019', 5, 6, 7]

我有几种解决方法,但是所有这些方法都需要口才出色,而且看起来也不是很优雅。

1 个答案:

答案 0 :(得分:2)

尝试使用Collection :: countBy()方法。 (https://laravel.com/docs/master/collections#method-countBy

Reservation::countBy('status');

在调用countBy()函数之前,您始终可以限制查询