Laravel查询生成器中的多个关系

Laravel查询生成器中的多个关系,laravel,relationship,pivot-table,laravel-4,query-builder,Laravel,Relationship,Pivot Table,Laravel 4,Query Builder,我有一个事件模型和一个名为getEvents()的方法,该方法从数据库中的events表中获取事件列表 每个事件都将依次有与之关联的代理,这是因为它变得复杂 共有3个表,delegate_event(这是一个透视表,将代理链接到基于event_id和delegate_id的事件)、delegate(一个包含id字段和contact_id字段的简单表)和包含联系人列表信息的contacts表 “代理”表使用联系人id链接到“联系人”表,并浏览与该联系人相关的各种信息 我正在使用querybuild

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

每个事件都将依次有与之关联的代理,这是因为它变得复杂

共有3个表,delegate_event(这是一个透视表,将代理链接到基于event_id和delegate_id的事件)、delegate(一个包含id字段和contact_id字段的简单表)和包含联系人列表信息的contacts表

“代理”表使用联系人id链接到“联系人”表,并浏览与该联系人相关的各种信息

我正在使用querybuilder和leftJoin方法来获取每个事件所需的大部分信息,但现在我需要浏览代理列表

我无法确定如何通过delegate_事件表加入与事件关联的代理关联的联系人


有人能帮我吗。谢谢。

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

以下是我所拥有的:

mtm_事件_用户: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
对于多个事件,将其中meu.
event
=1替换为ORDER BY meu.
event