为了账号安全,请及时绑定邮箱和手机立即绑定

关联属于qor admin

关联属于qor admin

Go
慕虎7371278 2021-04-02 14:15:17
我有以下两种结构: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没有该字段,因此无法匹配某些内容。请务必阅读有关约定的文档。


查看完整回答
反对 回复 2021-04-19
  • 2 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信