【问题标题】:Limiting the result of nested relationship in Laravel在 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 nested relationship


【解决方案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 个单位以任何方式出现,我认为我必须更多地寻找它
猜你喜欢
  • 1970-01-01
  • 2014-01-10
  • 2014-10-27
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 2021-08-27
  • 2021-07-19
相关资源
最近更新 更多