【问题标题】:Multiple Relationships in Laravel Query BuilderLaravel 查询构建器中的多个关系
【发布时间】:2013-05-02 21:08:25
【问题描述】:

我有一个事件模型和一个名为 getEvents() 的方法,它从我的数据库中的事件表中获取事件列表。

每个事件依次都有与之关联的委托,这就是它变得复杂的原因。

有 3 个表,delegate_event(这是一个数据透视表,将代表链接到基于 event_id 和 delegate_id 的事件)、delegate(一个包含 id 字段和 contact_id 字段的简单表)和一个包含以下内容的联系人表联系人列表中的信息。

delegates 表使用contact_id 链接到contacts 表并提取与该联系人关联的各种信息。

我正在使用 Query Builder 和 leftJoin 方法来获取每个事件所需的大部分信息,但我现在需要提取委托列表。 http://paste.laravel.com/qSa

我不知道如何通过 delegate_event 表加入与事件相关联的代表相关联的联系人。

有人可以帮我吗?谢谢。

【问题讨论】:

    标签: laravel relationship pivot-table laravel-4 query-builder


    【解决方案1】:

    您需要一个多对多的事件用户表,因为多个事件将有多个与之关联的用户(代表)。

    这是我所拥有的:

    mtm_event_user:ID、事件、用户

    事件: id,名称(事件)

    用户: id、联系人

    联系人: id、姓名、地址等

    这是我的查询,您可以修改 SELECT 以适合您需要的字段。

    SELECT *
    FROM contacts
    INNER JOIN users ON users.contact = contacts.ID
    INNER JOIN mtm_event_user AS meu ON meu.user = users.id
    WHERE meu.`event` = 1
    

    对于多个事件,将 WHERE meu.event = 1 替换为 ORDER BY meu.event

    【讨论】:

      猜你喜欢
      • 2019-04-24
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      相关资源
      最近更新 更多