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)
})
これはスライスを使用してテーブルからユーザーを取得して表示するためのコードで、gormからのエラーが発生します
アドレス指定不可能な値を使用してreflect.Value.Set
スライスへのポインタでFindを呼び出す必要があります。
err := db.Find(&users).Error
関連するGormのドキュメント: http://jinzhu.me/gorm/crud.html#query
S.Diegoの回答を明確にするために、これを変更します。
err := db.Find(users).Error
これに:
err := db.Find(&users).Error
エラーによると、変数usersはポインタではないため、アドレス指定できません。
受け入れられた回答と非常に似た方法で(ただし、若干異なるコンテキストで)、さまざまなプロジェクトで繰り返し発生するエラー:
func migrate(db *gorm.DB) {
db.AutoMigrate(User{}, Activity{})
}
なる
func migrate(db *gorm.DB) {
db.AutoMigrate(&User{}, &Activity{})
}
アンパサンドに注意してください。