funcGetValidMsg(err error, user SignUserInfo)string { // 将err接口断言为具体类型 if errs, ok := err.(validator.ValidationErrors); ok { getObj := reflect.TypeOf(&user) fmt.Println("类型为:", getObj)
// 断言成功 for _, e := range errs { // 遍历每一个错误信息 报错信息可能有多个 // 根据报错字段名,获取结构体的具体字段 if f, exits := getObj.Elem().FieldByName(e.Field()); exits { msg := f.Tag.Get("msg") fmt.Println(msg) return msg } f f, exits := getObj.Elem().FieldByName(e.Field()); exits { msg := f.Tag.Get("msg") fmt.Println(msg) return msg } } } return""// 没有检查到验证器错误则返回空 }