从 gorm 数据库返回结构列表的函数返回 nil?

我正在尝试创建一个函数,该函数将表中的所有内容输出为表所具有的结构切片。


func FetchAll(parameter interface{}) []interface{} {

    var model interface{}


    var resultArray []interface{}


    db := common.GetDB()

    rows, err := db.Model(parameter).Where(parameter).Rows()

    if err != nil {

        fmt.Print(err.Error())

        return nil

    }

    for rows.Next() {

        db.ScanRows(rows, &model)

        resultArray = append(resultArray, model)

    }

    fmt.Println(resultArray)

    return resultArray

}

用法:


c.JSON(200, FetchAll(&ProductImage{ProductID: productID}))

但输出如下:


[<nil>,<nil>,<nil>]

这是为什么呢?


慕桂英3389331
浏览 110回答 1
1回答

Cats萌萌

不能的类型modelinterface{}您可以使用var model = map[string]interface{}{}更易于编写:func FetchAll(parameter interface{}) []map[string]interface{} {&nbsp; &nbsp; var resultArray []map[string]interface{}&nbsp; &nbsp; db := common.GetDB()&nbsp; &nbsp; err := db.Model(parameter).Where(parameter).Find(&resultArray).Error&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Print(err)&nbsp; &nbsp; &nbsp; &nbsp; return nil&nbsp; &nbsp; }&nbsp; &nbsp; fmt.Println(resultArray)&nbsp; &nbsp; return resultArray}
打开App,查看更多内容
随时随地看视频慕课网APP