Я пытаюсь выбрать определенные столбцы из таблиц, к которым я присоединился, используя Eloquent.
у меня 3 модели
- сделка
- канал
- Торговец
Транзакции ссылки на канал. У него есть отношения hasOne.
Канал ссылки на продавца. Он также имеет отношение hasOne.
public function channel() {
return $this->hasOne(Channel::class, 'uuid', 'entityId');
}
public function merchant() {
return $this->hasOne('App\Merchant', 'uuid', 'sender');
}
Я использую нетерпеливую загрузку, поэтому в модели транзакций укажите следующее:
protected $with = ['channel'];
И канал имеет:
protected $with = ['merchant']:
Этот запрос я пытаюсь преобразовать в Eloquent, но я не уверен, как выбирать столбцы, когда они принадлежат связанным моделям. Чего я не понимаю, так это того, что если отношения определены, почему я не могу выбирать столбцы из других моделей, не используя повторно объединения или предложение with?
SELECT SUM(t.amount) AS amount,
m.name
FROM transactionsV2 t JOIN
channels c
ON t.entityId = c.uuid JOIN
merchants m
ON c.sender = m.uuid
WHERE t.paymentType = 'DB' AND
t.status = 1 AND
t.processing_time >= '2019-01-01' AND
t.processing_time < '2019-01-21'
GROUP BY m.name;