原文地址:Go小优化之Gin框架的ShouldBind绑定的struct字段bind设置为required时验证零值失败问题处理~
废话不多说,先来看下通常情况下咱们定义的结构体的类型:
type GetInferenceTaskRule struct {
Page int `form:"page" binding:"required"`
Size int `form:"size" binding:"required"`
IsOnMyself int `form:"is_on_myself" binding:"required"`
}
在上面的案例中,IsOnMyself这个字段的值只能为0或是1,但是当咱们传0的时候,这个字段的校验居然无法通过,提示咱们参数错误。
想要验证通过也很简单,我们只要把类型定义为指针类型即可接受零值。
修改后可用的的结构体如下:
type GetInferenceTaskRule struct {
Page int `form:"page" binding:"required"`
Size int `form:"size" binding:"required"`
IsOnMyself *int `form: