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

一对多关联从一张表中获取数据

一对多关联从一张表中获取数据

Go
摇曳的蔷薇 2022-11-23 19:21:50

我是 Golang 和 Gorm 的新手,我找不到答案。在休息 api 中,我希望我的 json 带有来自一个表关系的值。


type Product struct {

    gorm.Model   

    Name             string       

    Description      string       

    Weight           string

    TypeID           uint

}

type Type struct {

    ID                   string         `gorm:"primaryKey;"`

    Name                 string

    Product              []Product


}

我希望我的产品 json 带有来自类型的 ID 和名称。但这不起作用。


var product Product

id:=1

db.Preload("Type").First(&product, id)

我必须在结构中做这样的事情吗?


type Product struct {

    gorm.Model   

    Name             string       

    Description      string       

    Weight           string

    Type             Type 

}


查看完整描述

1 回答

?
精慕HU

TA贡献1592条经验 获得超6个赞

如果要将 and 加载Type.ID到Type.NameandProduct.ID中Product.Name,则需要专门从两个表中选择字段:


var product Product

id:=1

db.Joins("JOIN types ON types.id = products.type_id"). Select("types.id, types.name, products.description, products.weight, products.type_id").First(&product, id)

如果要Type在结构中将字段分隔成单独的字段,则Product需要进行以下更改:


type Product struct {

    gorm.Model   

    Name             string       

    Description      string       

    Weight           string

    TypeID           uint

    Type             Type 

}


var product Product

id:=1

db.Preload("Type").First(&product, id)

在这里,所有Type字段都将加载到Product.Type字段中。


查看完整回答
反对 回复 2022-11-23

添加回答

举报

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