Vapor - 如何访问 FluentValue 类型?
Vapor - How to access the FluentValue type?
这是一个 Swift,与 Vapor 相关的问题。
如何在尝试创建 ResponseRepresentable 时访问 FluentValue 类型 Class?
Vapor Model
协议需要 ID;我想将我的 ID 变量分配为可选的 FluentValue。但是,我找不到它(即使在 Import Vapor 和 Import Fluent 之后)。
import Vapor
import VaporMySQL
let drop = Droplet()
drop.post(String.self, "boughtcoffee") { request, buyerName in
let coffeeledger = CoffeeLedger(name: buyerName, time: 0)
guard let atLeastOneDrinker = request.data["drinker"].string else {
throw Abort.custom(status: .badRequest, message: "Please enter some drinkers")
}
return coffeeledger
}
进口蒸气
导入 Fluent
final class CoffeeLedger: Model {
var id: FluentValue?
var name: String
var time: Int
init (name: String, time: Int){
self.name = name
self.time = time
}
}
我正在关注 Vapor 视频,了解如何设置响应可表示的模型。 https://www.youtube.com/watch?v=E1ir7_s_VTw
FluentValue
在 Vapor 0.15 中变成了 Node
。 (此时 Vapor 的当前版本是 0.16)。
此外,init
和 serialize
方法变成了 init(node: ...)
和 makeNode()
。
模型页面 (https://vapor.github.io/documentation/fluent/model.html) 上的代码应该是最新的并且适用于 Vapor 0.15 及更高版本。
如果您遇到特定错误,请在此处使用该错误消息创建另一个问题,我会尽力提供帮助!
太棒了。效果很好。以下内容基于您的文档。希望它能帮助其他使用 Vapor 的人:
import Vapor
import Fluent
final class CoffeeLedger: Model {
var id: Node?
var buyername: String
var drinkername: String
var time: Int
init(buyername: String, drinkername: String, time: Int) {
self.buyername = buyername
self.drinkername = drinkername
self.time = time
}
init(node: Node, in context: Context) throws {
id = try node.extract("id")
buyername = try node.extract("buyername")
drinkername = try node.extract("drinkername")
time = try node.extract("time")
}
func makeNode() throws -> Node {
return try Node(node: [
"id": id,
"buyername": buyername,
"drinkername": drinkername,
"time": time
])
}
static func prepare(_ database: Database) throws {
try database.create("Ledger") { users in
users.id()
users.string("buyername")
users.string("drinkername")
users.int("time")
}
}
static func revert(_ database: Database) throws {
try database.delete("Ledger")
}
}
这是一个 Swift,与 Vapor 相关的问题。
如何在尝试创建 ResponseRepresentable 时访问 FluentValue 类型 Class?
Vapor Model
协议需要 ID;我想将我的 ID 变量分配为可选的 FluentValue。但是,我找不到它(即使在 Import Vapor 和 Import Fluent 之后)。
import Vapor
import VaporMySQL
let drop = Droplet()
drop.post(String.self, "boughtcoffee") { request, buyerName in
let coffeeledger = CoffeeLedger(name: buyerName, time: 0)
guard let atLeastOneDrinker = request.data["drinker"].string else {
throw Abort.custom(status: .badRequest, message: "Please enter some drinkers")
}
return coffeeledger
}
进口蒸气 导入 Fluent
final class CoffeeLedger: Model {
var id: FluentValue?
var name: String
var time: Int
init (name: String, time: Int){
self.name = name
self.time = time
}
}
我正在关注 Vapor 视频,了解如何设置响应可表示的模型。 https://www.youtube.com/watch?v=E1ir7_s_VTw
FluentValue
在 Vapor 0.15 中变成了 Node
。 (此时 Vapor 的当前版本是 0.16)。
此外,init
和 serialize
方法变成了 init(node: ...)
和 makeNode()
。
模型页面 (https://vapor.github.io/documentation/fluent/model.html) 上的代码应该是最新的并且适用于 Vapor 0.15 及更高版本。
如果您遇到特定错误,请在此处使用该错误消息创建另一个问题,我会尽力提供帮助!
太棒了。效果很好。以下内容基于您的文档。希望它能帮助其他使用 Vapor 的人:
import Vapor
import Fluent
final class CoffeeLedger: Model {
var id: Node?
var buyername: String
var drinkername: String
var time: Int
init(buyername: String, drinkername: String, time: Int) {
self.buyername = buyername
self.drinkername = drinkername
self.time = time
}
init(node: Node, in context: Context) throws {
id = try node.extract("id")
buyername = try node.extract("buyername")
drinkername = try node.extract("drinkername")
time = try node.extract("time")
}
func makeNode() throws -> Node {
return try Node(node: [
"id": id,
"buyername": buyername,
"drinkername": drinkername,
"time": time
])
}
static func prepare(_ database: Database) throws {
try database.create("Ledger") { users in
users.id()
users.string("buyername")
users.string("drinkername")
users.int("time")
}
}
static func revert(_ database: Database) throws {
try database.delete("Ledger")
}
}