登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-03-02 19:00:25 341浏览 收藏

大家好,我们又见面了啊~本文《需要验证 go-playground/validator/v10 中的双字段》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

需要检查至少一个字段应该存在电子邮件,电话至少一个是必填的

目前我有自定义验证器

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 中的双字段》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>