【发布时间】:2020-11-13 07:14:25
【问题描述】:
我正在使用 laravel,我正在尝试从按“created_at”列分组的数据库中获取数据。 created_at 列中的数据被存储为以下格式,
2020-07-23 07:03:59
我的问题是,我们如何仅使用日期组来获取数据。 例如,所有的记录应该被分组到一个具有相同日期的数组/对象中。
我尝试执行以下查询,
$transactions= MyTransaction::where('id','=',$user->id)->orderBy('created_at')->get()->groupBy(function($item) {
return $item->created_at->format('Y-m-d');
});
但它不会返回我所期望的,它也会考虑秒数和小时数。
请指导我解决这个问题。
【问题讨论】:
-
你不能用mysql/eloquent将结果分组到一个数组中,groupBy用于将所有结果压缩成每组1行,这主要用于
count()之类的函数。您最好的选择是在使用 php.ini 查询后对选项进行排序。或者对每个组做一个单独的查询。 -
@Merijndk:感谢您的快速回复。你能否指导我更多地实现我的目标。
标签: php mysql laravel eloquent laravel-query-builder