如何在gorm模型结构中使用结构而不将其作为模型

  • 本文关键字:模型 结构 gorm go go-gorm
  • 更新时间 :
  • 英文 :


我有一个模型结构

type Customer struct {
gorm.Model
Person  `gorm:"-" json:"person"`
Contact `gorm:"-" json:"contact"`
Address `gorm:"-" json:"address"`
}
func (p Customer) Validate() error {
return validation.ValidateStruct(&p,
validation.Field(&p.Person),
validation.Field(&p.Contact),
validation.Field(&p.Address),
)
}

我希望客户有联系人数据,这样我就有了联系人结构。但每当我尝试运行服务器时

type Contact struct {
Tel  string `json:"tel"`
Mail string `json:"mail"`
URL  string `json:"url"`
}
func (c Contact) Validate() error {
return validation.ValidateStruct(&c,
validation.Field(&c.Tel, validation.Required, is.Digit),
validation.Field(&c.Mail, validation.Required, is.Email),
validation.Field(&c.URL, is.URL),
)
}

我得到

model.Customer's field Contact, need to define a foreign key for relations or it need to implement the Valuer/Scanner interface

但我不想把它单独放在桌子上。那么我该如何防止这种情况发生呢?我试过使用

`gorm:"-"`

但是如果我以json的形式读取记录,那么所有的值都是空的

"contact": {
"tel": "",
"mail": "",
"url": ""
},

所以我的问题是,如果我不想把它放在自己单独的桌子上,为什么我需要扫描仪和估价师或外键?

我不得不使用gorm:;嵌入的";而不是gorm:"-"如文件中所述

https://gorm.io/docs/models.html#Embedded-结构

相关内容

  • 没有找到相关文章

最新更新