Laravel hasManyThrough возвращает пустой результат - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть 3 таблицы: Чаты , Сообщения , Счета

enter image description here

Раньше я получал такие чаты:

//ChatModel:
public function invoices()
{
    return $this->hasMany(Invoice::class);
}

Но теперь мне нужно получить все чаты , которые присутствуют в сообщениях чата конкретного чата.Должен ли я использовать hasManyThrough для этого?К сожалению, следующий пример возвращает пустой результат

//ChatModel:
public function invoices()
{
    return $this->hasManyThrough(Invoice::class, Message::class, 'chat_id', 'id');
}

1 Ответ

1 голос
/ 26 сентября 2019

Поскольку у вас есть как chat_id, так и invoice_id в вашей таблице сообщений, вы должны просто превратить вашу таблицу сообщений в сводную таблицу!

public function invoices()
{
    return $this->belongsToMany(Invoice::class, 'messages');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...