想象一下在Laravel项目中我有Traking
Order
和Driver
雄辩的模型。
在trakings
表中,我有列tracking_key
。在drivers
表中,我也有列tracking_key
。
例如,如果驱动程序tracking_key
是x,则tracking_key
表中有许多trakings
x的跟踪信息。
所以我现在有$order = new Order::with('driver')
;它工作正常,但现在在此查询中,我也想从trakings
表中获取信息(在trakings
表中跟踪与驱动程序的tracking_key
相匹配的信息)。
如您所见,由于我在这两个表中没有外键,因此我没有Driver::with('trakings')
类型的关系。
我尝试过:
$order = new Order::with(['driver' => function($query){
$query->join('trackings', 'trackings.tracking_key', '=', 'drivers.tracking_key');
}])
但是结果是stranje,我认为这行不通。那我该怎么办?
答案 0 :(得分:0)
您可以像这样使用嵌套的紧急负载:
Order::with('driver.trackings')
这将是与订单相关的加载驱动程序以及与驱动程序相关的跟踪