gpt4 book ai didi

go - 关联属于 qor admin

转载 作者:IT王子 更新时间:2023-10-29 02:09:23 24 4
gpt4 key购买 nike

我有这两个结构:

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 之间的一对多成员关系。问题是管理 View 上的表单看起来不错,我可以添加尽可能多的环境...但是提交表单只有 Collection 保存在数据库中.

最佳答案

缺少的是告诉 gorm 另一个模型的外键。

在您的情况下,我们使用 Has Many (gorm Doc) .要定义关系,您必须向结构添加标签:

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 将无法匹配这两个模型。作为convention因为主键是 ID 并且您的 Enviroment 没有该字段,所以无法匹配某些内容。请务必阅读有关 conventions 的文档.

关于go - 关联属于 qor admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51780778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com