
// 首页活动模块区域分类表模型 type LabelType struct { Model Id int `json:"id";gorm:"primary_key"` MallId int `json:"mall_id"` Name string `json:"name"` Weigh int `json:"weigh"` // 权重 GoodsList []Goods `gorm:"ForeignKey:LabelId" json:"goods_list"` //查询当前分类下的商品集合 } type Goods struct { Model GoodsId int `json:"goods_id" gorm:"primary_key"` MallId int `json:"mall_id"` // 商城 id LabelId int `json:"label_id"` // 关联 mall_label_type GoodsName string `json:"goods_name"` // 商品名称 CategoryId int `json:"category_id"` // 分类 id SmallImage string `json:"small_image"` // 商品缩略图 Images string `json:"images"` Category Category `gorm:"foreignkey:CategoryID" json:"category"` //分类表 } func (labelModel *LabelType) GetAll(params *request.IndexParams) (labelTypes []*LabelType) { err := db.Debug().Model(&labelTypes). Preload("GoodsList", func(query *gorm.DB) *gorm.DB { return query.Order("goods_id desc") }). Preload("GoodsList.Category"). Where("mall_id = ? and status = ?", params.MallId, "normal").Order("weigh desc"). Find(&labelTypes).Error if err != nil && err != gorm.ErrRecordNotFound { return nil } return labelTypes } 1 ysongyang OP LabelType 代码补全 ``` // 首页活动模块区域分类表模型 type LabelType struct { Model Id int `gorm:"primary_key" json:"id"` MallId int `json:"mall_id"` Name string `json:"name"` Images string `json:"images"` // 背景图 Status string `json:"-"` // normal 开启 hidden 关闭 Weigh int `json:"weigh"` // 权重, 越大越靠前 CreateTime int `json:"-"` UpdateTime int `json:"-"` GoodsList []LitestoreGoods `gorm:"ForeignKey:LabelId" json:"goods_list"` //查询当前分类下的商品集合 } ``` |
2 ysongyang OP 加 func(query gorm.DB) gorm.DB { return query.Order("goods_id desc")} 就会报错 invalid query condition: 不加这个是可以正常查询的 |
3 EileenJ 2020-09-03 18:26:58 +08:00 via Android 去掉 Model(&labelTypes)试下 |
5 Carlgao 2020-09-04 10:30:28 +08:00 你的 ForeignKey:LabelId 写错了吧,难道不是应该是 GoodId 吗,然而在你的 LabelType 结构体里面没有看到这个字段 |
6 ysongyang OP @Carlgao 我查询的是 模块分类列表,然后列出 模块分类下的商品集合,没毛病吧。而且我也说了呀 加 func(query gorm.DB) gorm.DB { return query.Order("goods_id desc")} 就会报错, 不加这个 是可以正常查出来我想要的数据的呀。 |
7 ysongyang OP 问题已解决! |