关联属于qor admin

我有以下两种结构:


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表单提交,然后将其保存在数据库中。


慕虎7371278
浏览 250回答 2
2回答

幕布斯7119047

缺少的是告诉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没有该字段,因此无法匹配某些内容。请务必阅读有关约定的文档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go