我有一個顯示的功能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 關注
- 80 瀏覽
添加回答
舉報
0/150
提交
取消