【问题标题】:How to correctly handle simplified model in Fluent/Vapor?如何正确处理 Fluent/Vapor 中的简化模型?
【发布时间】:2021-11-08 07:02:44
【问题描述】:

假设,我有一个 User 模型,这个模型包含 products 孩子(一对多关系)。

在某些情况下,在我的 iOS 应用中,我只需要显示所有用户的列表,因此我不需要查询我的数据库中的产品。

如何以最简单的方式在 Fluent 中获取没有子级的用户? 我是否需要创建一个不包含产品的单独模型?

func getAllUsersHandler(_ request: Request) -> EventLoopFuture<[User]> {
    User.query(on: request.db).all()
}

【问题讨论】:

  • 我不太确定你在问什么。默认情况下做User.query(on: req.db).all() 不返回任何孩子?

标签: swift vapor vapor-fluent


【解决方案1】:

默认情况是User 模型上的查询不会在结果中包含任何Children 字段。要包含它们,您需要在查询中使用.with(\.$products)

您可以通过修改查询来限制返回的字段,如示例所示:

User.query(on: request.db).field(\.$name).field(\.$email).all()

这只会将这些字段带入模型,并使不需要的字段处于未初始化状态。请参阅here 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 2019-06-20
    • 2018-11-27
    • 2021-03-27
    • 2016-03-19
    • 2011-04-25
    • 2017-04-09
    • 1970-01-01
    相关资源
    最近更新 更多