diff --git a/model/model_meta.go b/model/model_meta.go index 63b6800e..371e3137 100644 --- a/model/model_meta.go +++ b/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 软删除模型记录