fix(form): Set default value for form fields (#4047)

- Use specified default value in struct tags when binding a request input to struct for validation, even if sent empty, not only when not sent at all.
- Add string field to `TestMappingDefault` test case.
- Add test case for not sent form field to default to the value specified via code.
- Add test case for form field sent empty to default to the value specified via code.

Fixes: How to apply default value if empty value provided by client during model binding? #4042, #13042df, #a41721a
This commit is contained in:
Ahmad Saeed Goda
2024-09-06 08:21:19 +03:00
committed by GitHub
parent 3cb30679b5
commit 28e57f58b1
2 changed files with 23 additions and 0 deletions
+3
View File
@@ -261,6 +261,9 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][
if len(vs) > 0 {
val = vs[0]
if val == "" {
val = opt.defaultValue
}
}
if ok, err := trySetCustom(val, value); ok {
return ok, err