У меня есть модель User
, к которой я хочу добавить свойство friends
.Друзья, должны быть другими User
s.
Я создал 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()
:
Неоднозначное использование «родных братьев (связанных: через:)»
Я пытался заменить его на:
return siblings(related: User.self, through: UserFriendsPivot.self)
... безуспешно.
Я знаю, что два фрагмента кода должны работать, потому что я прямскопировал их из других отношений между братьями и сестрами, которые я установил между Event
и User
, которые работают просто отлично.
Единственное отличие, которое я вижу, состоит в том, что я пытаюсь построить отношения между теми же моделями.
Что я могу сделать?