这是我的路由信息:
router.get("answers","delete", Int.parameter) { req -> Future<Response> in
let answerID = try req.parameters.next(Int.self)
guard let _ = getUsername(req) else {
throw Abort(.unauthorized)
}
return Message.query(on: req).filter(\.id == answerID).first().map(to: Response.self) { answer in
guard let answer = answer else {
throw Abort(.notFound)
}
return answer.delete(on: req).map(to: Response.self) { _ in
return req.redirect(to: "/answers")
}
}
}
但对于xCode来说,这个上下文不够明确,需要更多信息:.filter(\.id == answerID)
以下是我的结构体Message:
struct Message: Content, SQLiteUUIDModel, Migration {
var id: UUID?
var username: String
var content: String
var category: String
var question: String
var date: Date
我不明白为什么在许多其他路由中使用ID过滤器时,这是我第一次出现这个错误。
我在谷歌上搜索了一下,似乎当Fluent没有被导入时会出现这个错误,但我已经在顶部import Fluent
了。
import FluentMySQL
,或者import FluentPostgreSQL
... - LoVoimport FluentSQLite
- Thomas Schmittimport Fluent
。🤦♂️ - Koen.