首页 > 后端开发 > Golang > 规则中的 ozzo 验证对于相等值返回错误

规则中的 ozzo 验证对于相等值返回错误

WBOY
发布: 2024-02-05 22:48:03
转载
876 人浏览过

规则中的 ozzo 验证对于相等值返回错误

问题内容

我有一个简单的代码,使用 echo 作为引擎,使用 ozzo-validation 作为请求验证器。

func (a MyRequest) Validate() error {
    return validation.ValidateStruct(
        &a,
        validation.Field(&a.Value,
            validation.Required,
            validation.Length(1, 5),
            validation.Each(validation.NilOrNotEmpty, validation.In([]string{"true", "false"}),
            ),
        ),
    )
}
登录后复制

这是我发送的请求:

{"value":["true"]}
登录后复制

我从 In 规则中收到此错误:

value: (0: must be a valid value.).
登录后复制

但是当我使用 ==reflect.DeppEqual 检查值时,值相等:

fmt.Println(reflect.DeepEqual([]string{"true", "false"}[0], a.Value[0]))
fmt.Println([]string{"true", "false"}[0] == a.Value[0])


output:
true
true
登录后复制

我在这里做错了什么?


正确答案


使用 validation.Each(validation.In([]string{"true", "false"})) 会将 Value 切片中的每个元素与提供给 validate.In 的切片进行比较,即 []string{ “真”,“假”}

使用 validation.In("true", "false")Value 切片中的每个元素与 validate.In 中的各个值进行比较。

以上是规则中的 ozzo 验证对于相等值返回错误的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板