Maison > développement back-end > Golang > le corps du texte

Deux champs dans go-playground/validator/v10 doivent être vérifiés

WBOY
Libérer: 2024-02-13 21:40:10
avant
698 Les gens l'ont consulté

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

Pendant le processus de développement, nous devons souvent vérifier les données saisies par l'utilisateur. Lors du développement en langage Go, go-playground/validator/v10 est une bibliothèque de vérification très simple à utiliser. Il fournit des règles de vérification riches et des méthodes d'utilisation concises, qui peuvent nous aider à vérifier rapidement et efficacement la légalité des données. Dans cet article, l'éditeur PHP Xinyi expliquera comment utiliser go-playground/validator/v10 pour vérifier deux champs et donnera des exemples de code détaillés. Apprenons ensemble !

Contenu de la question

Besoin de vérifier qu'au moins un champ doit exister par e-mail, au moins un numéro de téléphone est requis

Actuellement, j'ai un validateur personnalisé

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
}
Copier après la connexion

Mais très panique

L'utilisateur est un modèle gorm

Comment vérifier ces deux champs dans ce cas

Solution de contournement

Il contient beaucoup de balises conditionsrequired validator. Dans votre cas, vous aurez peut-être besoin de required_without_all + omitempty.

required_without_all - Rendre un champ obligatoire si tous les champs de la liste sont vides.

omitempty - Seul le champ peut être vide.

N'oubliez pas que les balises requises doivent précéder l'omimpty.

Exemple

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal