问题内容
我有一个简单的代码,使用 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
中的各个值进行比较。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » 规则中的 ozzo 验证对于相等值返回错误
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » 规则中的 ozzo 验证对于相等值返回错误