返回顶部
首页 > 资讯 > 精选 >需要验证 go-playground/validator/v10 中的两个字段
  • 460
分享到

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

go语言 2024-02-13 21:02:16 460人浏览 独家记忆
摘要

在开发过程中,我们常常需要对用户输入的数据进行验证。而在使用Go语言开发时,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 中的两个字段的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 需要验证 go-playground/validator/v10 中的两个字段

本文链接: https://lsjlt.com/news/564252.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作