【发布时间】:2022-01-07 19:18:52
【问题描述】:
我的数据结构如下
type DynamicConfig struct {
gorm.Model
AppName string `json:"app_name" form:"app_name"`
Creator string `gorm:"<-:create" json:"creator" form:"creator"`
Editor string `json:"editor" form:"editor"`
Metadata string `json:"metadata" form:"metadata"`
}
我的想法是创建者创建后不能更改,所以我使用 gorm:"
{
"ID": 4,
"CreatedAt": "2021-11-30T13:05:31Z",
"UpdatedAt": "2021-12-01T06:22:02Z",
"DeletedAt": null,
"app_name": "test3",
"creator": "xx",
"editor": "yy",
"metadata": "test3"
}
这是我的更新方法:
func UpdateDynamicConfig(dc DynamicConfig) error {
res, err := GetDynamicConfig(DynamicConfig{
AppName: dc.AppName,
})
if err != nil {
return err
}else if len(res) == 0 {
return errors.New("app conf not exists")
}else if len(res) != 1 {
return errors.New("more than one config meet the criteria, please check")
}
config := res[0]
result := DB.Model(&config).Updates(dc)
return result.Error
}
我这样调用方法
config := model.DynamicConfig{AppName: "test3", Creator: "xxxx"}
model.UpdateDynamicConfig(config)
然后创建者更新为 xxxx。 如何防止字段被更新? 请帮帮我,非常感谢!
【问题讨论】: