gpt4 book ai didi

go - 字段上未定义的验证函数 "xxx"

转载 作者:行者123 更新时间:2023-12-05 03:47:15 24 4
gpt4 key购买 nike

当我刚刚将 Gin 从 v1.4.0 升级到 v1.5.0 时,我像往常一样使用 'BindJSON' 函数,并抛出了这个错误。

2019/11/29 11:44:13 [Recovery] 2019/11/29 - 11:44:13 panic recovered:
Undefined validation function 'exists' on field 'FirstName'
...

这是我的代码:

package main

import (
"github.com/gin-gonic/gin"
)

type User struct {
FirstName *string `json:"fn" binding:"exists"`
}


func main(){
router := gin.Default()
router.POST("/register", func(c *gin.Context) {
var user User
if err := c.BindJSON(&user); err != nil {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{
"error": "first name cannot be empty",
})
return
}
})

router.Run(":8080")
}

最佳答案

Gin.v1.4.0使用validator.v8进行验证,gin.v1.5.0使用validator.v9,验证器将exists标签从v8移至v9。

所以你可以这样定义结构体:

type User struct {
// FirstName *string `json:"fn" binding:"exists"`
FirstName *string `json:"fn" binding:"required"`
}

同样,如果您使用“required”标签并出现此错误,请检查您的 go.mod 文件并尝试将“github.com/go-playground/validator/v8”升级到 v9 或v10.

关于go - 字段上未定义的验证函数 "xxx",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64904425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com