Zwei Felder in go-playground/validator/v10 müssen überprüft werden

WBOY
Freigeben: 2024-02-13 21:40:10
nach vorne
696 Leute haben es durchsucht

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

Während des Entwicklungsprozesses müssen wir häufig die vom Benutzer eingegebenen Daten überprüfen. Bei der Entwicklung in der Go-Sprache ist go-playground/validator/v10 eine sehr einfach zu verwendende Verifizierungsbibliothek. Es bietet umfassende Überprüfungsregeln und prägnante Verwendungsmethoden, die uns dabei helfen können, die Rechtmäßigkeit von Daten schnell und effektiv zu überprüfen. In diesem Artikel stellt der PHP-Editor Xinyi vor, wie man mit go-playground/validator/v10 zwei Felder überprüft, und gibt detaillierte Codebeispiele. Lasst uns gemeinsam lernen!

Frageninhalt

Mindestens ein Feld muss überprüft werden, E-Mail sollte vorhanden sein, mindestens eine Telefonnummer ist erforderlich

Derzeit habe ich einen benutzerdefinierten Validator

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
}
Nach dem Login kopieren

Aber große Panik

Der Benutzer ist ein Gorm-Model

So überprüfen Sie diese beiden Felder in diesem Fall

Umgehung

Es sind viele Bedingungenrequired validator-Tags darin enthalten. In Ihrem Fall benötigen Sie möglicherweise required_without_all + omitempty.

required_without_all – Machen Sie ein Feld zu einem Pflichtfeld, wenn alle Felder in der Liste leer sind.

omitempty - Nur das Feld darf leer sein.

Denken Sie daran, dass erforderliche Tags vor omitempty stehen müssen.

Beispiel

Das obige ist der detaillierte Inhalt vonZwei Felder in go-playground/validator/v10 müssen überprüft werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage