Forráskód Böngészése

🐛 fix(model): allow zero-value updates so tags/description can be cleared

t0ng7u 6 hónapja
szülő
commit
ca1f3c6e4c
1 módosított fájl, 7 hozzáadás és 4 törlés
  1. 7 4
      model/model_meta.go

+ 7 - 4
model/model_meta.go

@@ -73,11 +73,14 @@ func IsModelNameDuplicated(id int, name string) (bool, error) {
 
 // Update 更新现有模型记录
 func (mi *Model) Update() error {
-    // 仅更新需要变更的字段,避免覆盖 CreatedTime
     mi.UpdatedTime = common.GetTimestamp()
-
-    // 排除 created_time,其余字段自动更新,避免新增字段时需要维护列表
-    return DB.Model(&Model{}).Where("id = ?", mi.Id).Omit("created_time").Updates(mi).Error
+    // 使用 Session 配置并选择所有字段,允许零值(如空字符串)也能被更新
+    return DB.Session(&gorm.Session{AllowGlobalUpdate: false, FullSaveAssociations: false}).
+        Model(&Model{}).
+        Where("id = ?", mi.Id).
+        Omit("created_time").
+        Select("*").
+        Updates(mi).Error
 }
 
 // Delete 软删除模型记录