2 回答

TA貢獻1836條經(jīng)驗 獲得超3個贊
根據(jù)文檔,為了更改正在更新的值,您必須通過 gorm Scope 參數(shù)設(shè)置它們。在這種情況下, User 結(jié)構(gòu)并不意味著用于修改。您應該改用 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條經(jīng)驗 獲得超7個贊
我認為問題是在這里你更新用戶時有一個觸發(fā)器,你可以在這里改變邏輯,你的密碼不應該散列,希望對你有好處
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 關(guān)注
- 219 瀏覽
添加回答
舉報