【发布时间】:2018-04-08 07:10:54
【问题描述】:
我有一个 Persons 表和一个 Events 表,它们通过 Attends 表相关联,因此当我希望记录一个人应以特定角色参加特定活动的事实时,Attends 表中存在一条记录(例如组织者等):
Persons
+----+-------------+
| id | surname |
+----+-------------+
| 1 | Robinson |
| 2 | Savage |
...
Events
+----+-----------------------+
| id | name |
+----+-----------------------+
| 1 | Half Term Competition |
| 2 | Christmas Competition |
...
attends
+---------+----------+--------+
| eventId | personId | roleId |
+---------+----------+--------+
| 1 | 1 | 1 |
| 1 | 2 | 6 |
...
我想生成一个活动列表,其中列出了谁要去以及他们在做什么,但我找不到在 Vapor 查询中使用 .join() 的方法。似乎您可以过滤连接的表,但不包括任何字段。我错过了什么还是这不可能?
我在以下主题上尝试了许多变体:
Person.join(Attends.self).filter(Attends.self,Event.foreignIdKey == eventId)
我得到了正确的人员记录,但无法从加入的出席记录中访问他们的“角色”。
如果我做一个原始查询,那么它会返回一个节点表示。我可以使用 Leaf 轻松查看此内容,但如何以我希望生成带有图像等的 PDF 的方式对其进行迭代并不明显。
【问题讨论】:
-
Fluent 父子关系和兄弟关系的 Vapor 2 + Swift 4 示例实现可以在 github 上的github.com/VaporExamplesLab/ServerSideSwift_J_RelationsAwt找到跨度>