【发布时间】:2020-04-07 17:09:19
【问题描述】:
有以下代码:
router.get("/fetchOngoingReleases", String.parameter) { (request) -> Future<[ReleaseWithUser]> in
return Release.query(on: request).filter(\.inProgress == true).all().flatMap { (ra) -> EventLoopFuture<[ReleaseWithUser]> in
let userId = try request.parameters.next(String.self)
return User.query(on: request).filter(\.fbId == userId).first().flatMap { (user) -> EventLoopFuture<[ReleaseWithUser]> in
let a = ra.map { (r) -> ReleaseWithUser in
// some condition and logic here
}
return a. //need this to make future
}
}
}
我检查了所有可能的方法调用,但没有一个将 [ReleaseWithUser] 转换为 Future<[ReleaseWithUser]>。你有什么想法吗?
【问题讨论】:
-
这个
.join(\ReleaseUser.id, to: \Release.id, method: .left)看起来有问题。您应该将主键加入外键而不是另一个主键吗? -
如果在 ReleaseUser 模型中将 releaseId 和 userId 设为可选会发生什么?
-
为什么你把这个问题与原来的问题完全改变了?在不同的问题中问不同的问题不是更好吗!!!
-
对不起。我不知道如何在 30 天内处理 50 个问题。我经常到达。