Laravel: получение противоречивых результатов от API - PullRequest
0 голосов
/ 06 июня 2019

У меня есть конечная точка предметов, которая разбивает предметы на страницы.Я заметил, что возвращаемые предметы кажутся непоследовательными каждый раз, когда я достигаю конечной точки.Я начинаю задумываться, не является ли что-то неправильным в запросе, который я использую, но не вижу, в чем проблема:

$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));

1 Ответ

1 голос
/ 06 июня 2019

https://laravel.com/docs/5.8/pagination

В настоящее время операции пагинации, использующие оператор groupBy, не могут быть эффективно выполнены Laravel.Если вам нужно использовать groupBy с набором результатов с разбивкой по страницам, рекомендуется выполнить запрос к базе данных и создать paginator вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...