在我的应用程序中,我用来validator.v9验证我的模型。验证后我可以投射error界面并且成功,我在控制台上看到“OK”
err := v.ModelValidator.Struct(model)
if _, ok := err.(validator.ValidationErrors); ok {
fmt.Println("ValidateModel: OK")
} else{
fmt.Println("ValidateModel: FALSE")
}
我需要将此对象包装到另一个对象以供将来处理
type errValidation struct {
error
}
func ValidationError(err error) error {
return errValidation{err}
}
但是,如果我尝试将这个包装对象转换回上面validator.ValidationErrors第一个案例的转换正下方的同一函数中,它将失败
e := ValidationError(err)
if _, ok := e.(validator.ValidationErrors); ok {
fmt.Println("ValidationError: OK")
} else{
fmt.Println("ValidationError: FALSE")
}
我在控制台看到
ValidateModel: OK
ValidationError: FALSE
我怎样才能使这个演员表从包装的对象中发挥作用?
ValidationErrors从"gopkg.in/go-playground/validator.v9"看起来像这样
type ValidationErrors []FieldError
func (ve ValidationErrors) Error() string {
//.....
}
人到中年有点甜
相关分类