gorm 自定义预加载的 正确用法是什么?一直报错: invalid query condition
資深大佬 : ysongyang 4
// 首页活动模块区域分类表模型 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 }
大佬有話說 (7)