thinkphp按照group by分页

// 分页参数设置
$page = isset($post['page']) ? max(1, intval($post['page'])) : 1;
$pageSize = isset($post['page_size']) ? max(1, intval($post['page_size'])) : 10;
$offset = ($page - 1) * $pageSize;
// 获取列表按照订单号分页,先查出每页page_size个订单号
$list_order = $Model
->where(['uid' => $info['id']])
->group('order_id')
->order('id', 'desc')
->limit($offset, $pageSize)
->column('order_id');
// 获取这些订单号对应的所有记录
$list = $Model
->where(['uid' => $info['id']])
->whereIn('order_id', $
list_order)
   ->order('id', 'desc')
->select();

// 获取订单号总数(用于分页)
$total = $Model
->where(['id' => $info['id']])
->group('order_id')
->count();

// 返回前端的分页信息
$pagination = [
'total' => $total,//总条数
'current_page' => $page,//当前页
'page_size' => $pageSize,//每页条数
'total_pages' => ceil($total / $pageSize)//总共多少页
];
 
posted @ 2025-08-18 17:23  幽暗天琴  阅读(17)  评论(0)    收藏  举报