我有以下两种结构:type Collection struct { gorm.Model APIKey string CollectionID string Name string Environments []Environment}type Environment struct { gorm.Model EnvironmentID string Name string Provider string FlightType string ADT int CHD int INF int}主要外观如下:func main() { adminResource := admin.New(&admin.AdminConfig{DB: model.DB}) adminResource.AddResource(&model.Collection{}) adminResource.AddResource(&model.Environment{}) mux := http.NewServeMux() adminResource.MountTo("/admin", mux) if err := http.ListenAndServe(":8000", mux); err != nil { panic(err) } else { fmt.Println("Listening on: 8000") }}关键是我不知道是否应该做其他事情来允许Collection和Environemt之间的一对多成员关系。事实是,管理员视图上的表单看起来不错,我可以添加与以前一样多的环境...,但是仅将Collection表单提交,然后将其保存在数据库中。
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
缺少的是告诉gorm其他模型的外键。
在您的情况下,我们使用Has Many(文档gorm)。要定义关系,您必须在结构中添加标签:
type Collection struct {
gorm.Model
APIKey string
CollectionID string
Name string
Environments []Environment `gorm:"foreignkey:EnvironmentID"`
}
type Environment struct {
gorm.Model
EnvironmentID string
Name string
Provider string
FlightType string
ADT int
CHD int
INF int
}
如果未定义其他模型的外键,则gorm无法匹配这两个模型。由于主键的约定是ID并且您Enviroment没有该字段,因此无法匹配某些内容。请务必阅读有关约定的文档。
- 2 回答
- 0 关注
- 249 浏览
添加回答
举报
0/150
提交
取消