我有一个用于分页项目的项目端点。我注意到,每次击中终点时,返回的项目似乎并不一致。我开始怀疑我使用的查询是否有问题,但似乎看不到问题所在:
$paginator = Items::whereNull('time_destroyed')
->orderBy('created_at', 'DESC')
->selectRaw('MAX(id) as id, MAX(created_at) as created_time, product_id')
->groupBy('product_id', 'created_at')
->paginate($default);
$data = $paginator->toArray();
$ids = $paginator->pluck('id')->toArray();
$posts = Items::whereIn('id', $ids)->get();
$posts->load('product.elbin', 'product.inventoryQuantity', 'product.inventory');
$data['data'] = $posts->toArray();
return response($data, 200)->withHeaders(cache_header('posts posts-page-'.$request->input('page'), 10));
答案 0 :(得分:1)
https://laravel.com/docs/5.8/pagination
当前,使用Laravel无法有效执行使用groupBy语句的分页操作。如果需要使用具有分页结果集的groupBy,建议您查询数据库并手动创建分页器。