Heim  >  Artikel  >  Backend-Entwicklung  >  Zwei Felder in go-playground/validator/v10 müssen überprüft werden

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

WBOY
WBOYnach vorne
2024-02-13 21:40:10690Durchsuche

需要验证 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
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:vscode Golang-Paket erstellen?Nächster Artikel:vscode Golang-Paket erstellen?