问个laravel的问题,如何在paginate的column中加上min函数

情况是这样的我想去分组数据中某个字段最小的,然后分页组成列表

$column1 = ['id','worker_id','min(`in_time`) as min_time'];
$list = $list->groupBy('worker_id')->orderBy('in_time', 'asc')->paginate((int)$request['per_page'], $column1, 'current_page')->toArray();
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'min(in_time)' in 'field list'
select `id`,  `worker_id`, `min(in_time)` as `min_time` from `morning_check`  group by `worker_id` order by `check_time` asc

如何在 paginate 选择字段里面如何用 min 函数?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

试试 DB::raw('min(in_time) as min_time')

1年前 评论

这样试试呢?

$column1 = ['id', 'worker_id', \DB::raw('min(in_time) as min_time')];
$list = $list->groupBy('worker_id')->orderBy('in_time', 'asc')->paginate((int)$request['per_page'], $column1, 'current_page')->toArray();
1年前 评论

没能明白,paginate 就是单纯用来分页的,我并不喜欢在里面做一些奇怪的操作。我更习惯于在 paginate 之前把要展示的数据提前处理好。

1年前 评论