Heim  >  Artikel  >  Backend-Entwicklung  >  So fügen Sie einem verschachtelten Feld ein Validator-Tag hinzu

So fügen Sie einem verschachtelten Feld ein Validator-Tag hinzu

WBOY
WBOYnach vorne
2024-02-09 10:10:171125Durchsuche

So fügen Sie einem verschachtelten Feld ein Validator-Tag hinzu

php-Editor Yuzai stellt Ihnen in diesem Artikel vor, wie Sie Validator-Tags zu verschachtelten Feldern hinzufügen. Während des Entwicklungsprozesses müssen wir häufig Formulardaten überprüfen, um die Integrität und Genauigkeit der Daten sicherzustellen. Beim Umgang mit verschachtelten Feldern werden Validator-Tags etwas anders hinzugefügt. In diesem Artikel wird detailliert beschrieben, wie Sie mithilfe von Validator-Tags verschachtelte Felder validieren, um Entwicklern einen besseren Umgang mit Formulardaten zu erleichtern. Egal, ob Sie gerade erst anfangen oder ein erfahrener Entwickler sind, dieser Artikel bietet Ihnen praktische Tipps und Anleitungen. Lasst uns gemeinsam lernen!

Frageninhalt

Das ist mein Code

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

type planner struct {
    abstractaccount
}

Zum Beispiel möchte ich bestehen planner 将自定义验证器标记添加到 email

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

Gibt es eine Möglichkeit, dies im Go-Validator zu implementieren, oder gibt es eine Bibliothek, die dies tun kann?

Lösung

Beispielprogramm
Im Beispielprogramm gibt es eine Funktion namens getFieldsWithCustomTag, die einen reflektierten Wert als Parameter verwendet und rekursiv nach Feldern mit dem Tag c-tag:true sucht (Sie können dies ändern). Es hängt diese Felder an den Slice an und ruft sich selbst rekursiv auf, wenn es auf eine verschachtelte Struktur stößt, um nach den Feldern in der verschachtelten Struktur zu suchen.

Das obige ist der detaillierte Inhalt vonSo fügen Sie einem verschachtelten Feld ein Validator-Tag hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen