отношения между людьми без внешнего ключа - PullRequest
0 голосов
/ 26 февраля 2019

Представьте себе, в проекте Laravel у меня есть Traking Order и Driver Eloquent модели.

В trakings таблице у меня есть столбец tracking_key.в таблице drivers у меня также есть столбец tracking_key.

Например, если драйверы tracking_key равны x, в таблице trakings содержится много информации об отслеживании с tracking_key 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');
}])

Но результат был странным, и я думаю, что это не работает.Так что мне делать?

1 Ответ

0 голосов
/ 26 февраля 2019

вы можете использовать вложенную энергичную загрузку следующим образом:

Order::with('driver.trackings')

это будет загрузка драйвера, связанная с заказом и отслеживания, связанные с драйвером

...