[英]Laravel Eloquent querying pivot tables
使用Laravel 5,我有一個由用戶,對話和消息組成的數據庫,由用戶和對話之間的數據透視表連接,稱為“conversation_user”(並與BelongsToMany關系形成)。 架構如下:
| USERS | CONVERSATION | MESSAGES | CONVERSATION_USER |
| id | id | id | user_id |
| username | timestamps | conversation_id | conversation_id |
| password | | user_id | |
| | | message | |
所以基本上我正在嘗試使用conversation_user來獲取與登錄用戶相關的所有conversation_id,然后使用這些結果來獲取與該對話相關的最后一條消息。
在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
但是我無法弄清楚如何用Eloquent實現這一目標!
這應該工作:
$messages = Message::whereHas('conversation.users', function($q){
$q->where('user_id', 1);
})->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.