Make `required_without` work with pointer
Fix #483, #473
Zuyang Kou
4 years ago
1307 | 1307 | func requireCheckFieldKind(fl FieldLevel, param string) bool { |
1308 | 1308 | field := fl.Field() |
1309 | 1309 | if len(param) > 0 { |
1310 | field = fl.Parent().FieldByName(param) | |
1310 | if fl.Parent().Kind() == reflect.Ptr { | |
1311 | field = fl.Parent().Elem().FieldByName(param) | |
1312 | } else { | |
1313 | field = fl.Parent().FieldByName(param) | |
1314 | } | |
1311 | 1315 | } |
1312 | 1316 | switch field.Kind() { |
1313 | 1317 | case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func: |