【发布时间】:2019-03-16 20:41:42
【问题描述】:
我有一个User 模型,我想向它添加一个friends 属性。朋友,应该是其他Users。
我创建了UserFriendsPivot:
final class UserFriendsPivot: MySQLPivot, ModifiablePivot {
var id: Int?
var userID: User.ID
var friendID: User.ID
typealias Left = User
typealias Right = User
static var leftIDKey: WritableKeyPath<UserFriendsPivot, Int> {
return \.userID
}
static var rightIDKey: WritableKeyPath<UserFriendsPivot, Int> {
return \.friendID
}
init(_ user: User, _ friend: User) throws {
self.userID = try user .requireID()
self.friendID = try friend.requireID()
}
}
extension UserFriendsPivot: Migration {
public static var entity: String {
return "user_friends"
}
}
我将friends 属性添加到User:
var friends: Siblings<User, User, UserFriendsPivot> {
return siblings()
}
现在,我在return siblings() 一行看到以下错误:
'siblings(related:through:)' 的模糊使用
我尝试将其替换为:
return siblings(related: User.self, through: UserFriendsPivot.self)
...运气不好。
我知道这两个代码 sn-ps 应该工作,因为我直接从我在 Event 和 User 之间建立的另一个兄弟姐妹关系中复制了它们,这工作得很好。
我看到的唯一区别是我正在尝试在相同模型之间建立关系。
我能做什么?
【问题讨论】:
标签: swift relationship vapor