как разделить запрос на соединение в laravel - PullRequest
0 голосов
/ 26 октября 2019

Где-то в моем приложении Laravel следующий запрос, вероятно, вернет очень большой набор результатов:

$data = $query->join('accommodation_rooms', 'accommodations.id', '=', 'accommodation_rooms.accommodation_id')
    ->join('discounts', 'accommodation_rooms.id', '=', 'discounts.accommodation_room_id')
    ->select('accommodation_rooms.id')
    ->orderBy('discounts.amount', 'desc')
    ->select('discounts.amount', 'accommodations.*')
    ->groupBy('discounts.amount', 'accommodation_rooms.id');
return $data;

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

Учитывая, что данные отправляются из API, я хочу знать, как я могу разбить эти данные на блоки.
Спасибо.

1 Ответ

0 голосов
/ 26 октября 2019

Для этой цели вы можете использовать метод разбивки на страницы.

$data = $query->join('accommodation_rooms', 'accommodations.id', '=', 'accommodation_rooms.accommodation_id')
->join('discounts', 'accommodation_rooms.id', '=', 'discounts.accommodation_room_id')
->select('accommodation_rooms.id')
->orderBy('discounts.amount', 'desc')
->select('discounts.amount', 'accommodations.*')
->groupBy('discounts.amount', 'accommodation_rooms.id')->paginate(15);

. Вы можете изменить количество записей для выборки в данном параметре, чтобы использовать функцию разбивки на страницы, например 15.

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