Ларавель заявляет о двух красноречивых отношениях - PullRequest
0 голосов
/ 31 октября 2018

У меня есть таблица Transactions, где каждая транзакция принадлежит либо водителю, либо компании. В то же время Driver принадлежит Company.

Я могу констатировать два отдельных отношения. Для прямых сделок компании:

public function transactions_0() {
    return $this->morphMany(Transaction::class, 'owner');
}

Для транзакций, которые принадлежат компании через ее драйверы:

public function transactions_1() {
    return $this->hasMany(Transaction::class)
           ->hasManyThrough(Transaction::class, Driver::class, null, 'owner_id')
           ->where('owner_type', Driver::class);
}

Есть ли способ объединить оба? Поэтому, когда я пытаюсь получить доступ к App\Company::first()->transactions, я получаю все транзакции - прямые и косвенные?

...