php - Laravel:从 API 获取不一致的结果
问题描述
我有一个对项目进行分页的项目端点。我注意到每次到达终点时返回的项目似乎都不一致。我开始怀疑我使用的查询是否有问题,但似乎看不出问题所在:
$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));
解决方案
https://laravel.com/docs/5.8/pagination
目前,Laravel 无法高效执行使用 groupBy 语句的分页操作。如果您需要使用带有分页结果集的 groupBy,建议您查询数据库并手动创建分页器。
推荐阅读
- python - 在 Pandas 中重塑数据 - Python 3
- c++ - 无法使用 cmake 生成共享库
- python-3.x - 跨工作表 xlwings 复制粘贴范围时出错
- android - 无法在android上的反应导航标题中设置阴影样式(反应本机)
- iot - 最近无法打开 cooja 模拟器,但之前运行良好
- opencv - golang 中缺少 OpenCV 超分辨率
- javascript - Jquery Ajax 对 Nginx 中的静态 html 资源的请求导致“405 不允许”
- html - 使用 wrap 删除 flexbox 中的剩余空间
- javascript - Jquery 使用切换按钮调整 Div 大小
- reactjs - socket.io - 从动态创建的命名空间接收发射事件