g.GET("/", func(c echo.Context) error {
var users []models.User
err := db.Find(users).Error
if err != nil {
fmt.Println(err)
}
return c.JSON(http.StatusOK, users)
})
c'est le code permettant d'obtenir et d'afficher les utilisateurs de la table à l'aide de slice résultant de l'erreur suivante de gorm
reflect.Value.Set utilisant une valeur non adressable
Vous devez appeler Find avec un pointeur sur la tranche.
err := db.Find(&users).Error
documentation Gorm pertinente: http://jinzhu.me/gorm/crud.html#query
Juste pour clarifier les réponses de S.Diego, cela change:
err := db.Find(users).Error
pour ça:
err := db.Find(&users).Error
l'erreur dit, la variable utilisateurs n'est pas adressable, car ce n'est pas un pointeur.
De manière très similaire à la réponse acceptée (mais dans un contexte légèrement différent), et à une erreur que je continue à commettre dans différents projets:
func migrate(db *gorm.DB) {
db.AutoMigrate(User{}, Activity{})
}
devient
func migrate(db *gorm.DB) {
db.AutoMigrate(&User{}, &Activity{})
}
Remarquez les esperluettes.