【问题标题】:Can I create this query with Eloquent or do I need Query Builder?我可以用 Eloquent 创建这个查询还是需要 Query Builder?
【发布时间】:2018-10-20 04:05:06
【问题描述】:

我可以使用 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

【问题讨论】:

    标签: laravel eloquent laravel-query-builder


    【解决方案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();
    

    更新,我修复了一个语法问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 2021-09-18
      相关资源
      最近更新 更多