Heim > Artikel > Backend-Entwicklung > Die Ozzo-Validierung in Regeln gibt bei gleichen Werten einen Fehler zurück
Ich habe einen einfachen Code, der echo
作为引擎,使用 ozzo-validation
als Anforderungsvalidator verwendet.
func (a MyRequest) Validate() error { return validation.ValidateStruct( &a, validation.Field(&a.Value, validation.Required, validation.Length(1, 5), validation.Each(validation.NilOrNotEmpty, validation.In([]string{"true", "false"}), ), ), ) }
Das ist die Anfrage, die ich gesendet habe:
{"value":["true"]}
Ich erhalte diesen Fehler aufgrund der In
-Regel:
value: (0: must be a valid value.).
Aber wenn ich den Wert mit ==
和 reflect.DeppEqual
überprüfe, sind die Werte gleich:
fmt.Println(reflect.DeepEqual([]string{"true", "false"}[0], a.Value[0])) fmt.Println([]string{"true", "false"}[0] == a.Value[0]) output: true true
Was mache ich hier falsch?
Verwenden Sie validation.Each(validation.In([]string{"true", "false"}))
会将 Value
切片中的每个元素与提供给 validate.In
的切片进行比较,即 []string{ “真”,“假”}
.
Verwenden Sie zum Vergleich die einzelnen Werte in validation.In("true", "false")
将 Value
切片中的每个元素与 validate.In
.
Das obige ist der detaillierte Inhalt vonDie Ozzo-Validierung in Regeln gibt bei gleichen Werten einen Fehler zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!