我想知道如何使用Fluent和FluentMySQL在Vapor 3中创建多对多关系,如Vapor 2 docs中所述
遗憾的是,docs for Vapor 3还没有更新,并且Pivot协议的实现已经改变.
这是我正在尝试做的事情:我有两个类,用户和社区.社区拥有成员,用户可以是多个社区的成员.
目前,我的代码如下所示:
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()
}
}
但是,这会导致以下编译器错误:
不能专门化非泛型类型’Pivot’和使用’Pivot’作为符合协议’Pivot’的具体类型不受支持.
我已经看到有一个名为ModifiablePivot的协议扩展,但我不知道如何使用它,因为在任何地方都没有文档或示例代码.
任何帮助表示赞赏.提前致谢!
解决方法:
Fluent 3不再提供Fluent 2中的Pivot等默认枢轴.您应该做的是创建一个符合Pivot的类型. FluentMySQL中有一些帮助器类型.
final class CommunityUser: MySQLPivot {
// implement the rest of the protocol requirements
var communityID: Community.ID
var userID: User.ID
}
然后使用CommunityUser代替Pivot< Community,User>.
原文地址:https://codeday.me/bug/20190611/1216037.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。