Closed
Description
How can validate slice off map?
Golang Code
validate.Config(func(opt *validate.GlobalOption) {
opt.StopOnError = false
opt.SkipOnEmpty = false
})
m := map[string]interface{}{
"name": "inhere",
"age": 99,
"oldSt": 10,
"newSt": 10,
"email": "some@email.com",
"tags": []string{"go", "php", "java"},
"origins": []map[string]string{
{"name": "test", "url": "https://test.com"},
{"name": "test", "url": "https://test.com"},
},
}
v := validate.Map(m)
// can also
v.StringRule("age", "required|int|min:1|max:99")
v.StringRule("name", "required|minLen:2")
v.StringRule("tags", "required|slice|minlen:1")
// feat: support check sub-item in slice
v.StringRule("tags.*", "required|string|min_len:1")
v.StringRule("origins", "required|slice|minlen:1")
v.StringRule("origins.*.name", "required|full_url")
Get errors:
{
"origins.*.name": {
"_validate": "cannot convert map to arg#0(string), validator 'isFullURL'",
"full_url": "origins.*.name must be a valid full URL address",
},
}
"cannot convert map to arg#0(string), validator 'isFullURL'"