Ограничение результата вложенных отношений в Laravel - PullRequest
0 голосов
/ 05 мая 2019

У меня есть вложенное отношение, для которого я хочу установить условие и предел.

$data = Accommodation::with('accommodationFacilities', 'city')
    ->take(10)
    ->with('accommodationRooms.roomPricingHistory')
    ->limit(2)
    ->where('is_deleted', 0)
    ->paginate(10);

Теперь у меня есть вложенное отношение в строке 2, которое я хочу ограничить этим отношением: roomPricingHistory.

Код ограничивает родительское отношение: accommodationRooms.

Любая идея, как я могу ограничить дочернее отношение и как установить для него if, если столбец === 0 эта строка должна быть загружена.

1 Ответ

1 голос
/ 06 мая 2019

Вы можете попытаться ограничить энергичную загрузку

$data = Accommodation::with('accommodationFacilities', 'city')
    ->take(10)
    ->with(['accommodationRooms.roomPricingHistory' => function($query){
        $query->limit(2)
    }])
    ->limit(2)
    ->where('is_deleted', 0)
    ->paginate(10);

Документы: https://laravel.com/docs/5.8/eloquent-relationships#eager-loading

...