需要验证 go-playground/validator/v10 中的两个字段

需要验证 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 中的两个字段的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2353996.html

(0)
上一篇 2025年3月1日 14:35:08
下一篇 2025年3月1日 14:35:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论