string类型参数验证, 增加禁用自动类型转换验证
This commit is contained in:
@@ -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 {
|
||||
// 必传且不允许空字符串
|
||||
|
||||
Reference in New Issue
Block a user