3

在我的旧 Vapor 3 代码中,我正在创建这样的模型:

address.create(on: conn).flatMap { savedAddress in
    // do something with saved address
}

在 Vapor 4 文档的帮助下,我现在将 db 传递给 create 函数而不是连接。问题是,当我尝试访问 savedAddress 时出现以下错误,flatMap 似乎返回 Void:“元组类型 'Void' 的值没有成员......”。

我应该如何重写这个?

4

1 回答 1

4

因为 Fluent 4 中的所有模型都必须是类,所以您可以依靠引用语义来做您想做的事情(这就是为什么create(on:)返回EventLoopFuture<Void>。所以在您的示例中,savedAddress您可以将其用作已保存的模型,而不是仅用address作已保存的模型。保存后,Fluent将在address对象上设置模型的 ID 属性,然后您可以在flatMap闭包中检索它address.requireID()

于 2020-05-06T15:25:34.850 回答