string类型参数验证, 增加禁用自动类型转换验证

This commit is contained in:
2024-11-01 17:57:53 +08:00
parent c35d379a26
commit 974063eb26
3 changed files with 42 additions and 47 deletions

View File

@@ -8,10 +8,12 @@
package validator
import (
"errors"
"fmt"
"git.zhangdeman.cn/gateway/validator/define"
"git.zhangdeman.cn/zhangdeman/util"
"git.zhangdeman.cn/zhangdeman/wrapper"
"reflect"
"strconv"
"strings"
)
@@ -112,10 +114,20 @@ func handleString(inputVal any, rule *define.FieldRule) (string, error) {
var (
err error
formatData string
ok bool
)
if err = util.ConvertAssign(&formatData, inputVal); nil != err {
return "", err
if formatData, ok = inputVal.(string); !ok {
// 传入的不是string类型
if rule.DisableAutoConvert {
// 禁用类型转换
return "", errors.Errorf("%v : filed type is %v, data value auto convert is disabled, input value type is %v", rule.Path, rule.Type, reflect.TypeOf(inputVal).Kind().String())
}
if err = util.ConvertAssign(&formatData, inputVal); nil != err {
return "", err
}
}
// 判断空字符串
if !rule.AllowEmpty && formatData == "" && rule.IsRequired {
// 必传且不允许空字符串