2 回答
TA贡献1796条经验 获得超10个赞
所以事实证明我需要将该DeletedAt字段设置为空值。在幕后,GORM 会自动检查一个DeletedAt值。即SELECT * FROM users WHERE email = 'someone@gmail.com' AND deleted_at IS NULL。但是,我的DeletedAt字段被自动设置为空白日期,从技术上讲,这不是NULL.
我添加了一个结构...
type NullTime struct {
time.Time
Valid bool
}
然后更新了我的模型...
type User struct {
ID string `gorm:"primary_key:true"`
FirstName string `form:"first_name" json:"first_name,omitempty"`
LastName string `form:"last_name" json:"last_name,omitempty"`
Password string `form:"password" json:"password" bindind:"required"`
Email string `gorm:"type:varchar(110);unique_index" form:"email" json:"email,omitempty" binding:"required"`
Location string `form:"location" json:"location,omitempty"`
Avatar string `form:"avatar" json:"avatar,omitempty"`
BgImg string `form:"bg_img" json:"bg_img,omitempty"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt NullTime
}
TA贡献1834条经验 获得超8个赞
'gorm' 中的约定是在您的结构中包含基本模型。
// Base Model definition from gomodel.go
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time
}
// Your struct
type User struct {
gorm.Model
Name string
}
如您所见,'gorm' 需要一个指针来处理 NULL 值。
- 2 回答
- 0 关注
- 177 浏览
添加回答
举报