![](/img/trans.png)
[英]How to upgrade to Node.js SDK Admin SDK v10 (modular SDK) getMessaging & getFirestore calls?
[英]Validator v10 get list of error on single field
有沒有辦法為每個失敗的驗證獲取錯誤列表? 目前我只收到一個錯誤,並且來自第一個失敗的驗證。
我正在使用 golang 和 Validator 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上的代碼,了解ValidationErrors
和FieldError
上可用的方法。
如果您需要的不僅僅是檢查一個驗證條件然后返回它,而是需要檢查每個失敗的驗證,那么您需要對 package 進行一些增強,就像我的情況一樣。 我需要從第 480 行的驗證器中刪除return
語句validator.go
源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.