猿问

如何在 GORM 中获取字段值

我有一个将所有Product数据输出到 的函数data array,但我还需要category在relatives array.


功能:


func GetProductsById(c *gin.Context) { 

    var Product models.Products

    Products := []models.Products{}


    config.DB.Where("cat_id", func(tx *gorm.DB) *gorm.DB {

        return config.DB.Where("id=?", c.Query("prod_id")).Select("cat_id").First(&Product)

    }).Find(&Products)


    if err := config.DB.Where("id=?", c.Query("prod_id")).First(&Product).Error; err != nil {

        c.JSON(http.StatusInternalServerError, err.Error())

    } else {

        c.JSON(http.StatusOK, gin.H{

            "data":      []models.Products{Product},

            "relatives": &Products})

    }

}

我试着自己做,但我无法product category从数据数组中访问以显示 5 个类似的产品。我有错误: cannot convert 0xa182e0 to Int8


手掌心
浏览 421回答 1
1回答

长风秋雁

我认为你的 id 是整数,c.Query("prod_id") 返回字符串。您必须将其转换为整数intVar, err := strconv.Atoi(c.Query("prod_id"))如果代码没有错误:config.DB.Where("cat_id", func(tx *gorm.DB) *gorm.DB {    return config.DB.Where("id=?", intVar).Select("cat_id").First(&Product)}).Find(&Products)
随时随地看视频慕课网APP

相关分类

Go
我要回答