我有一个显示的功能Categories,我想用这个Preload方法也显示Products这个类目相关的,但是我不需要所有的产品,只需要5件,我该如何解决这个问题?功能:func GetAllCategories(c *gin.Context) { Categories := []models.Categories{} if err := config.DB.Preload("Products").Find(&Categories).Error; err != nil { c.JSON(http.StatusInternalServerError, err.Error()) } else { c.JSON(http.StatusOK, gin.H{"data": &Categories}) }}类别:type Categories struct { ID uint `json:"ID" gorm:"primaryKey"` Title string `json:"title"` ... Products []Products `gorm:"foreignKey:CategoriesRefer" json:"products"`}产品:type Products struct { gorm.Model CategoriesRefer int64 `json:"cat_id" gorm:"column:cat_id"` Title string `json:"title" gorm:"column:title"` ...}
1 回答
holdtom
TA贡献1805条经验 获得超10个赞
您可以尝试自定义预加载来修改Preload
函数的加载方式Products
。代码应如下所示:
func GetAllCategories(c *gin.Context) {
Categories := []models.Categories{}
err := config.DB.Preload("Products", func(db *gorm.DB) *gorm.DB {
return db.Limit(5)
}).Find(&Categories).Error
if err != nil {
c.JSON(http.StatusInternalServerError, err.Error())
} else {
c.JSON(http.StatusOK, gin.H{"data": &Categories})
}
}
- 1 回答
- 0 关注
- 71 浏览
添加回答
举报
0/150
提交
取消