在 Laravel 中限制嵌套关系的结果
Posted
技术标签:
【中文标题】在 Laravel 中限制嵌套关系的结果【英文标题】:Limiting the result of nested relationship in Laravel 【发布时间】:2019-09-23 06:50:45 【问题描述】:我有一个嵌套关系,我想设置条件和限制。
$data = Accommodation::with('accommodationFacilities', 'city')
->take(10)
->with('accommodationRooms.roomPricingHistory')
->limit(2)
->where('is_deleted', 0)
->paginate(10);
现在我在第 2 行有一个嵌套关系,我想通过以下方式限制该关系:roomPricingHistory
。
代码限制父关系为:accommodationRooms
。
知道如何限制子关系,以及如何为其设置 if,因此如果列 === 0,则应加载此行。
【问题讨论】:
这能回答你的问题吗? Laravel eager loading with limit 【参考方案1】:您可以尝试限制急切加载
$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
【讨论】:
当我使用 2 时没有负载,但是当我将数量增加到 12 时,例如 3 个单位以任何方式出现,我认为我必须更多地寻找它以上是关于在 Laravel 中限制嵌套关系的结果的主要内容,如果未能解决你的问题,请参考以下文章