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