强制更新Gorm零值
Reverse Lv4

概述

在使用 Gorm 的Updates方法更新字段时,一般情况下他会忽略掉零值,例如 false0"",这些都属于零值

如果你有个字段叫status,类型为bool表示该记录的状态,那么当你想修改他为false时是不会成功的。

解决方法

:::danger 注意
小心使用哦,别改崩了
:::

GORM 默认忽略零值(如 false),直接通过Select方法指定强制更新字段,即便你这个字段将被修改为零值。

1
2
3
4
func (TablePass) AddOrUpdate(config TablePass) error {
return farmework.ModuleOrm.Where("id = ?", config.ID).
Assign(config).Select("status").FirstOrCreate(&config).Error
}