我正在嘗試在 Laravel 中創建一個聊天應用程式。在用戶之間創建對話時,我不想將用戶記錄為主機用戶。我想獲得由給定用戶過濾的對話。示例:如果 USER_1 和 USER_2 屬于 CONVERSATION_1,我想通過 USER_1 和 USER_2 id 過濾掉 CONVERSATION_1。
這是我的表結構。
對話
id
product_id
對話用戶
id
conversation_id
user_id
這是我的對話服務。
class ConversationService
{
public static function first(User $user){
$admin = getAdmin();
$conversation = Conversation::whereHas("users", function($q) use($user, $admin){
$q->where("user_id", $user->id)->where("user_id", $admin->id);
})->first();
}
}
我知道我不能使用這種說法。$q->where("user_id", $user->id)->where("user_id", $admin->id);
您能否指導我如何按用戶 ID 過濾對話?
uj5u.com熱心網友回復:
由于對話必須明確屬于兩個用戶,因此只需加倍條件,每個用戶一個
$conversation = Conversation::query()
->whereHas("users", function($q) use($admin){
$q->where("user_id", $admin->id);
})
->whereHas("users", function($q) use($user){
$q->where("user_id", $user->id);
})
->first();
一旦你看到這個版本的代碼,它會打勾,說它是簡單的邏輯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/495400.html
下一篇:Laravel-表單值未更新
