diff --git a/pkg/builder/engine.go b/pkg/builder/engine.go index 032e6f3..9d889b4 100644 --- a/pkg/builder/engine.go +++ b/pkg/builder/engine.go @@ -19,7 +19,7 @@ const ( AppName = "QuarkGo" // Version of current package - Version = "1.1.19" + Version = "1.1.20" // 静态文件URL RespositoryURL = "https://github.com/quarkcms/quark-go/tree/main/website/" diff --git a/pkg/builder/template/adminresource/handlers_update.go b/pkg/builder/template/adminresource/handlers_update.go index 4d3af7f..0b7d7d5 100644 --- a/pkg/builder/template/adminresource/handlers_update.go +++ b/pkg/builder/template/adminresource/handlers_update.go @@ -86,14 +86,23 @@ func (p *UpdateRequest) Handle(ctx *builder.Context) interface{} { if value, ok := formValue.(float64); ok { reflectValue = reflect.ValueOf(int(value)) } + if reflectValue.IsZero() { + zeroValues[fieldName] = 0 + } case "float64": if value, ok := formValue.(float64); ok { reflectValue = reflect.ValueOf(float64(value)) } + if reflectValue.IsZero() { + zeroValues[fieldName] = 0 + } case "float32": if value, ok := formValue.(float64); ok { reflectValue = reflect.ValueOf(float32(value)) } + if reflectValue.IsZero() { + zeroValues[fieldName] = 0 + } case "time.Time": getTime, _ := time.ParseInLocation("2006-01-02 15:04:05", formValue.(string), time.Local) reflectValue = reflect.ValueOf(getTime) @@ -102,17 +111,18 @@ func (p *UpdateRequest) Handle(ctx *builder.Context) interface{} { if reflect.ValueOf(formValue).Type().String() == "[]uint8" { reflectValue = reflect.ValueOf(string(formValue.([]uint8))) } + if reflectValue.IsZero() { + zeroValues[fieldName] = nil + } } - if reflectFieldName.Type().String() != reflectValue.Type().String() { - return ctx.JSON(200, msg.Error("结构体类型与传参类型不一致!", "")) - } + if reflectValue.IsValid() { + if reflectFieldName.Type().String() != reflectValue.Type().String() { + return ctx.JSON(200, msg.Error("结构体类型与传参类型不一致!", "")) + } - if reflectValue.IsZero() { - zeroValues[fieldName] = 0 + reflectFieldName.Set(reflectValue) } - - reflectFieldName.Set(reflectValue) } } }