簡體   English   中英

Laravel Eloquent查詢數據透視表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM