1
使用Laravel 5,我有一个由用户,会话和消息组成的数据库,由用户和会话之间的称为“conversation_user”(并与BelongsToMany关系形成)的数据透视表组成。该模式如下:Laravel雄辩的查询数据透视表
| USERS | CONVERSATION | MESSAGES | CONVERSATION_USER |
| id | id | id | user_id |
| username | timestamps | conversation_id | conversation_id |
| password | | user_id | |
| | | message | |
所以基本上我想要使用conversation_user获得所有与登录用户的conversation_ids,然后使用这些结果来获得与该会话中的最后消息。
在SQL而言,这等同于:
SELECT messages.`message` FROM conversation_user INNER JOIN messages ON
conversation_user.conversation_id=messages.conversation_id
WHERE conversation_user.user_id=1 ORDER BY messages.id DESC
但我无法弄清楚如何与雄辩实现这一目标!
就像一个魅力 –
如果我介绍了另一个表混进去叫乔布斯的谈话表的外键名为JOB_ID,任何想法,我怎么会使用多个WhereHas? –
如果你指定关系,你可以链接另一个'whereHas'调用。像'Message :: whereHas('conversation.users',...) - > whereHas('conversation.job',...) - > get()' – lukasgeiter