使用 Vapor我想存储与 child 的关系。我还没有找到该类应该是什么样子的任何示例,我只是在猜测该怎么做。任何人都可以提供与其他 Model
对象列表有关系的类的示例吗?
import Vapor
import Fluent
import Foundation
final class Store: Model {
// MARK: - Model
var id: Node?
var exists: Bool = false
var locationIDs: [Node] = [] // No idea if this is right
var name: String
init(name: String, locationIDs: [Node] = []) {
self.id = nil
self.name = name
self.locationIDs = locationIDs
}
init(node: Node, in context: Context) throws {
id = try node.extract("id")
name = try node.extract("name")
// ???
}
func makeNode(context: Context) throws -> Node {
return try Node(node: [
"id": id,
"name": name
// ???
])
}
static func prepare(_ database: Database) throws {
try database.create( "stores" ) { creator in
creator.id()
creator.string("name")
// creator.id("", optional: false) // ???
}
}
static func revert(_ database: Database) throws {
try database.delete("stores")
}
}
最佳答案
这是我对用户和组关系的实现。一个用户属于一个组,组有很多用户,所以一个简单的 1 -> 许多关系。
final public class User: Model {
public var id: Int?
var emailAddress: String
var username: String
var groupId: Int
}
extension User {
var group: Parent<User, Group> {
return parent(\.groupId)
}
}
final public class Group: Model {
public var id: Int?
var name: String
}
extension Group {
var users: Children<Group, Users> {
return children(\.groupId)
}
}
许多 <-> 许多相似但在关系中间使用数据透视表。
关于swift - `Model` 类看起来有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825433/