Skip to content

How can validate slice off map? #206

Closed
@mdsohelmia

Description

@mdsohelmia

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'"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions