// 获取默认配置的数据库对象(配置名称为"default")
db := g.DB()
type User struct {
Id int
Passport string
Password string
NickName string
CreateTime gtime.Time
}
user := new(User)
err := db.Model("user").Where("id", 1).Struct(user)
或者
user := &User{}
err := db.Model("user").Where("id", 1).Struct(user)
前两种方式都是预先初始化对象(提前分配内存),推荐的方式:
user := (*User)(nil)
err := db.Model("user").Where("id", 1).Struct(&user)
2 Comments
黄昌淮
gf 1.16, 我有一个model里面有个字段长这样: ArtId uint64 `orm:"id,primary" json:"artId"` // 文章id
它进行查询时是没有问题的,where(xxx.Artid)它会知道是xxx的id,
但是,对于查询到的数据进行 struct或scan 就不行了,无法将数据的id赋给xx.Artid里,还是原来的默认值0
东方
v2.1.1版本里没有struct和structs方法了,只能用scan映射到pointer struct。
user := (*User)(nil)
err := db.Model("user").Where("id", 1).Scan(&user)
users := ([]User)(nil)
err := db.Model("user").Scan(&users)
users := ([]*User)(nil)
err := db.Model("user").Scan(&users)