Мне было интересно, как создать отношения «многие ко многим» в Vapor 3, используя Fluent и FluentMySQL, как описано в документах Vapor 2
К сожалению, документы для Vapor 3 еще не были обновлены, а реализация протокола Pivot
изменилась.
Вот что я пытаюсь сделать: у меня есть два класса, User
и Community
. Community
имеет members
, а User
s могут быть членами нескольких Community
s.
В настоящее время мой код выглядит так:
import Vapor
import FluentMySQL
final class Community: MySQLModel {
var id: Int?
//Community Attributes here
}
final class User: MySQLModel {
var id: Int?
//User Attributes here
}
extension Community {
var members: Siblings<Community, User, Pivot<Community, User>> {
return siblings()
}
}
Однако это вызывает следующие ошибки компилятора:
Cannot specialize non-generic type 'Pivot'
и Using 'Pivot' as a concrete type conforming to protocol 'Pivot' is not supported
.
Я видел, что есть расширение протокола, называемое ModifiablePivot
, но я не знаю, как его использовать, поскольку нигде нет документации или примера кода.
Любая помощь приветствуется. Заранее спасибо!