亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何選擇前 N 個元素 Gin-Gorm

如何選擇前 N 個元素 Gin-Gorm

Go
四季花海 2023-01-03 15:36:26
我有一個顯示的功能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})

    }

}


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號