Maison >développement back-end >Golang >Comment ajouter une balise de validation au champ imbriqué

Comment ajouter une balise de validation au champ imbriqué

WBOY
WBOYavant
2024-02-09 10:10:171153parcourir

Comment ajouter une balise de validation au champ imbriqué

L'éditeur php Yuzai vous présentera comment ajouter des balises de validation aux champs imbriqués dans cet article. Au cours du processus de développement, nous devons souvent vérifier les données du formulaire pour garantir l'intégrité et l'exactitude des données. Les balises de validation sont ajoutées légèrement différemment lorsqu'il s'agit de champs imbriqués. Cet article détaillera comment utiliser les balises de validation pour valider les champs imbriqués afin d'aider les développeurs à mieux gérer les données de formulaire. Que vous soyez débutant ou développeur expérimenté, cet article vous fournira des conseils et des conseils pratiques. Apprenons ensemble !

Contenu de la question

Ceci est mon code

type abstractaccount struct {
    email        string `gorm:"unique;type:varchar"`
    passwordhash string `gorm:"unique;type:varchar"`
}

type planner struct {
    abstractaccount
}

Par exemple, je veux réussir planner 将自定义验证器标记添加到 email

type Planner struct {
    AbstractAccount `validator:"Email:customTag"`
}

Existe-t-il un moyen d'implémenter cela dans le validateur Go ou existe-t-il une bibliothèque qui peut le faire ?

Solution

Exemple de programme
Dans l'exemple de programme, il existe une fonction appelée getFieldsWithCustomTag qui prend une valeur réfléchie comme paramètre et recherche de manière récursive les champs avec la balise c-tag:true (vous pouvez modifier cela). Il ajoute ces champs à la tranche et, s'il rencontre une structure imbriquée, s'appelle récursivement pour rechercher les champs dans la structure imbriquée.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer