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