没有外键的laravel关系

时间:2019-02-26 14:10:42

标签: php laravel eloquent foreign-keys relationship

想象一下在Laravel项目中我有Traking OrderDriver雄辩的模型。

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,我认为这行不通。那我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以像这样使用嵌套的紧急负载:

Order::with('driver.trackings')

这将是与订单相关的加载驱动程序以及与驱动程序相关的跟踪