验证器 v10 获取单个字段上的错误列表



有没有办法获取每个失败验证的错误列表? 目前,我只收到一个错误,并且来自第一个失败的验证。

我正在使用 golang 和验证器 v10

type User struct {
ID          string   `param:"id" json:"id" validate:"required"`
Name        string   `json:"name" validate:"required,max=100"`
Permissions []string `json:"permissions" validate:"permission_list,distinct_list"`
}

因此,如果字段权限在两者上都失败,我可以得到结果:

{
"validationErrors": {
"permissions": [
"permissions must be a list of valid permissions",
"permissions must be uniques",
]
}
}

您需要检查返回的错误。

package main
import (
"fmt"
"github.com/go-playground/validator/v10"
)
type User struct {
FirstName      string     `validate:"required"`
LastName       string     `validate:"required"`
}
func main() {
testUser := User{}
v := validator.New()

if err := v.Struct(testUser); err != nil {
validationErrors := err.(validator.ValidationErrors)
for _, validationError := range validationErrors {
fmt.Println(validationError.Error())
}
}
}

例: https://play.golang.com/p/HFdHrPKiYwF

检查 https://github.com/go-playground/validator/blob/master/errors.go 上的代码,了解ValidationErrorsFieldError上可用的方法。

如果您需要的不仅仅是检查一个验证条件然后返回它,而是需要检查每个失败的验证,您需要对包进行一些增强,就像我的情况一样。我需要从第 480 行validator.go源中删除return语句

相关内容

  • 没有找到相关文章

最新更新