作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有这两个结构:
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/
我有一个数据模型: type Epg struct { gorm.Model Uri string `gorm:";not null;unique"` Prefix
我有这两个结构: type Collection struct { gorm.Model APIKey string CollectionID string
我想将模块添加到 qor/admin。我使用 go get 命令安装了 qor/admin。 最佳答案 您使用 go get github.com/qor/admin 获取包。 然后你导入它 impo
我是一名优秀的程序员,十分优秀!