2 回答
TA贡献1836条经验 获得超3个赞
根据文档,为了更改正在更新的值,您必须通过 gorm Scope 参数设置它们。在这种情况下, User 结构并不意味着用于修改。您应该改用 SetColumn。
// BeforeUpdate : hook before a user is updated
func (u *User) BeforeUpdate(scope *gorm.Scope) (err error) {
fmt.Println("before update")
fmt.Println(u.Password)
if u.Password != "" {
hash, err := MakePassword(u.Password)
if err != nil {
return nil
}
scope.SetColumn("Password", hash)
}
fmt.Println(u.Password)
return
}
TA贡献1795条经验 获得超7个赞
我认为问题是在这里你更新用户时有一个触发器,你可以在这里改变逻辑,你的密码不应该散列,希望对你有好处
func (u *User) BeforeSave(scope *gorm.Scope) (err error) {
fmt.Println("before save")
fmt.Println(u.Password)
if u.Password != "" {
hash, err := MakePassword(u.Password)
if err != nil {
return nil
}
u.Password = hash
}
fmt.Println(u.Password)
return
}
- 2 回答
- 0 关注
- 199 浏览
添加回答
举报