我可以使用Eloquent创建此查询还是需要查询生成器?

时间:2018-10-20 04:05:07

标签: laravel eloquent laravel-query-builder

我可以使用Eloquents活动记录创建此查询还是需要使用查询生成器?

SELECT
    *
FROM
    chat
    inner join chat_member as member1
        on member1.chat_id = chat.chat_id
    inner join chat_member as member2
        on member2.chat_id = chat.chat_id
WHERE
    member1.chat_member_id = $member1ID
    and member2.chat_member_id = $member2ID

1 个答案:

答案 0 :(得分:1)

WhereHas()功能是从关系查询中过滤。

确保您拥有ChatMember模型。
并且Chat模型具有members()关系。

然后您可以按照以下步骤实现mysql查询。

Chat::whereHas('members', function ($query) {
    $query->where('chat_member_id', $member1ID);
})
->whereHas('members', function($query) {
    $query->where('chat_member_id', $member2ID);
})
->get();

更新,我修复了语法问题