reflect.Value.Set using unaddressable value

后端 未结 3 2194
余生分开走
余生分开走 2021-02-13 10:36
g.GET(\"/\", func(c echo.Context) error {
    var users []models.User
    err := db.Find(users).Error
    if err != nil {
        fmt.Println(err)
    }
    return c.JSO         


        
相关标签:
3条回答
  • 2021-02-13 10:39

    Just to add clarification to S.Diego answers, changing this:

    err := db.Find(users).Error
    

    to this:

    err := db.Find(&users).Error
    

    the error says, the variable users is not addressable, because it is not a pointer.

    0 讨论(0)
  • 2021-02-13 10:43

    You have to call Find with a pointer to the slice.

    err := db.Find(&users).Error
    

    relevant Gorm documentation: http://jinzhu.me/gorm/crud.html#query

    0 讨论(0)
  • 2021-02-13 11:05

    In a very similar fashion to the accepted answer (but in a slightly different context), and an error that I keep making in different projects:

    func migrate(db *gorm.DB) {
        db.AutoMigrate(User{}, Activity{})
    }
    

    becomes

    func migrate(db *gorm.DB) {
        db.AutoMigrate(&User{}, &Activity{})
    }
    

    Notice the ampersands.

    0 讨论(0)
提交回复
热议问题