需要验证 go-playground/validator/v10 中的两个字段
在开发过程中,我们常常需要对用户输入的数据进行验证。而在使用go语言开发时,go-playground/validator/v10是一个非常好用的验证库。它提供了丰富的验证规则和简洁的使用方式,可以帮助我们快速有效地验证数据的合法性。在本文中,php小编新一将为大家介绍如何使用go-playground/validator/v10来验证两个字段,并给出详细的代码示例。让我们一起来学习吧!
问题内容
需要检查至少一个字段应该存在电子邮件,电话至少一个是必填的
目前我有自定义验证器
func validateEmailPhone(fl validator.FieldLevel) bool {
user := fl.Top().Interface().(models.User)
validate := validator.Validate{}
if user.Email == "" && user.Phone == "" {
return false
}
if user.Email != "" {
if err := validate.Var(user.Email, "email"); err != nil {
return false
}
}
if user.Phone != "" {
if err := validate.Var(user.Phone, "e164"); err != nil {
return false
}
}
return true
}
但是很恐慌
用户是gorm模型
在这种情况下如何检查这两个字段
解决方法
有大量条件required
validator
中的标签。
在您的情况下,您可能需要 required_without_all
+ omitempty
。
required_without_all
- 如果列表中的所有字段均为空,则使字段成为必填字段。
omitempty
- 只允许该字段为空。
请记住,必需的标签必须位于 omitempty 之前。
示例
以上就是需要验证 go-playground/validator/v10 中的两个字段的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341