В Laravel 5, у меня есть база данных со следующей схемой:Как запросить сводные таблицы с несколькими отношениями с Laravel и красноречивым
| USERS | JOBS | CONVERSATIONS | MESSAGES | CONVERSATION_USER |
| id | id | id | id | user_id |
| username | title | job_id | conversation_id | conversation_id |
| password | | | user_id | |
| | | | message | |
Где моя conversation_user таблица представляет собой сводную таблицу.
Вопрос об экзамене: я пытаюсь использовать сводную таблицу convers_user для получения всех сообщений о разговоре, связанных с зарегистрированным пользователем, а затем использовать эти результаты для получения последнего сообщения, относящегося к этому разговору, а также заголовка к которой относятся разговоры.
В терминах SQL это соответствует:
SELECT t1.message, t2.title FROM
(SELECT messages.`message`, messages.conversation_id FROM conversation_user
INNER JOIN messages ON conversation_user.conversation_id=messages.conversation_id
WHERE conversation_user.user_id=$user_id ORDER BY messages.id DESC) t1
INNER JOIN
(SELECT jobs.`title`, conversations.id FROM conversations INNER JOIN jobs ON
conversations.job_id=jobs.id) t2
ON t1.conversation_id=t2.id
Однако я не могу понять, как добиться этого с красноречив!
Мои отношения ниже:
User model:
$this->hasMany('job');
$this->hasMany('message');
$this->belongsToMany('conversation');
Job model:
$this->belongsTo('user');
$this->hasMany('conversation');
$this->hasManyThrough('message', 'conversation');
Conversation model:
$this->belongsTo('job');
$this->hasMany('message');
$this->belongsToMany('user');
Message model:
$this->belongsTo('user');
$this->belongsTo('conversation');