有一种方法可以使雄辩的渴望加载中的其他孩子拥有兄弟姐妹?

时间:2019-01-16 00:49:41

标签: laravel eloquent laravel-5.7

我正在尝试在Laravel 5.7中建立一个雄辩的查询,该查询将基于列值的条件返回一个具有“旅行者”同级且具有不同“票证”集合的同级集合

我试图使用两个“旅行者”链(在旅行者上具有不同的where语句)来调用两个->与父级“订单”的关系。当我这样做时,似乎一个覆盖了另一个,而不是在“旅行者”集合的旁边添加了一个附加的集合条目。

表格

旅行者:覆盖

traveler_ticekts:traveler_id | package_id | info1_id | info2_id | info3_id

软件包:info1_id | info2_id | info3_id

如果他们选择了预先设置的套餐,则“ traveler_tickets”上的“ info”字段值不是必需的;否则,如果旅行者记录被设置为“ override”,它将直接将它们添加到票证中作为选项

我正在尝试最大限度地提高这种关系的表现,如果有必要,我会在一个声明中希望它,或者是下一个最佳选择。

提前谢谢!

$order_data = Orders::with([    
'travelers' => function ($q){
    $q->with(
           'ticket.package.info1',
           'ticket.package.info2',
           'ticket.package.info3'
    )->WhereNull('override');
},
    'travelers' => function ($q){
        $q->with(
           'ticket.info1',
           'ticket.info2',
           'ticket.info3'               
        )->where('override', 1);
}
])->find($id);

我希望我会得到一个集合,其中两个旅行者链都仍在同一个集合中,每个旅行者记录都设置了备用子路径,但是我只收到一个链,以最后一个为准(我猜是因为它会被覆盖而不是被添加)

0 个答案:

没有答案