如何将结果集从 "MySql for Swift" 传递到叶模板竞赛
How to pass ResultSet from "MySql for Swift" to leaf template contest
作为 Swift 和 Vapor 的新手,我正在尝试一个 Vapor 项目。它有一个简单的路由,通过 MySQL for Swift 从数据库中获取数据,然后将 ResultSet
传递给 Leaf 模板。这是我正在尝试的:
drop.get("report") {req in
let data = try mysql.execute("select * from things")
return try drop.view.make("report", ["data":data])
}
但是 Swift 抱怨这个错误:
error: cannot convert value of type '[[String : Node]]' to expected dictionary value type 'Node'
return try drop.view.make("report", ["data":data])
^~~~
感觉好像少了一个类型转换步骤,那是什么?
您应该可以通过手动将字典数组的类型设置为 Node
:
来解决此问题
drop.get("report") {req in
let data = try mysql.execute("select * from things")
let dataNode = Node.array(data.map({ return Node.object([=10=]) }))
return try drop.view.make("report", ["data":dataNode])
}
作为 Swift 和 Vapor 的新手,我正在尝试一个 Vapor 项目。它有一个简单的路由,通过 MySQL for Swift 从数据库中获取数据,然后将 ResultSet
传递给 Leaf 模板。这是我正在尝试的:
drop.get("report") {req in
let data = try mysql.execute("select * from things")
return try drop.view.make("report", ["data":data])
}
但是 Swift 抱怨这个错误:
error: cannot convert value of type '[[String : Node]]' to expected dictionary value type 'Node'
return try drop.view.make("report", ["data":data])
^~~~
感觉好像少了一个类型转换步骤,那是什么?
您应该可以通过手动将字典数组的类型设置为 Node
:
drop.get("report") {req in
let data = try mysql.execute("select * from things")
let dataNode = Node.array(data.map({ return Node.object([=10=]) }))
return try drop.view.make("report", ["data":dataNode])
}