升级到Vapor 4:如何创建模型和返回模型?

问题描述 投票:1回答:1

在我以前的Vapor 3代码中,我是这样创建模型的。

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

在Vapor 4文档的帮助下,我现在将db传递给create函数,而不是连接。问题是,似乎flatMap返回的是Void,因为当我试图访问saveAddress时得到了以下错误。"Value of tuple type 'Void' has no member ..."。

我应该如何重写?

vapor vapor-fluent
1个回答
3
投票

因为 Fluent 4 中的所有模型都必须是类,所以你可以依靠引用语义来做你想要的事情(这就是为什么 create(on:) 返回 EventLoopFuture<Void>. 因此,在你的例子中,而不是 savedAddress 你可以直接使用 address 作为保存的模型。当它被保存后,Fluent 会在您的模型的 address 对象,然后你可以在你的 flatMap 封闭 address.requireID()

© www.soinside.com 2019 - 2024. All rights reserved.