Make `required_without` work with pointer

Fix #483, #473
pull/484/head
Zuyang Kou 6 years ago
parent 884d31b8ca
commit 54db112759
  1. 4
      baked_in.go
  2. 2
      validator_test.go

@ -1308,8 +1308,12 @@ func hasValue(fl FieldLevel) bool {
func requireCheckFieldKind(fl FieldLevel, param string) bool {
field := fl.Field()
if len(param) > 0 {
if fl.Parent().Kind() == reflect.Ptr {
field = fl.Parent().Elem().FieldByName(param)
} else {
field = fl.Parent().FieldByName(param)
}
}
switch field.Kind() {
case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func:
return !field.IsNil()

@ -8712,7 +8712,7 @@ func TestRequiredWithout(t *testing.T) {
Field5: "test",
}
errs = validate.Struct(test2)
errs = validate.Struct(&test2)
if errs == nil {
t.Fatalf("failed Error: %s", errs)

Loading…
Cancel
Save