package controllers import ( vd "github.com/bytedance/go-tagexpr/v2/validator" ) func Validate(reqData interface{}) error { //valueType := reflect.ValueOf(reqData).Elem().Type() // 获取结构体类型 //newStruct := reflect.New(valueType).Interface() // 创建新的结构体 // //v := validation.Validation{} //status, err := v.Valid(newStruct) //if err != nil { // return err //} //if !status { // for _, err := range v.Errors { // // 获取 newStruct 指向的真实结构体的类型 // structType := reflect.Indirect(reflect.ValueOf(newStruct)).Type() // field, _ := structType.FieldByName(err.Field) // alias := field.Tag.Get("alias") // message := strings.Replace(err.Message, err.Field, alias, 1) // return errors.New(message) // } //} // //reflect.ValueOf(reqData).Elem().Set(reflect.ValueOf(newStruct).Elem()) //return nil if err := vd.Validate(reqData); err != nil { return err } return nil }