Skip to content

未指定 required 时没有获取到对应字段的值? #327

@haodiao

Description

@haodiao
    v := data.Create()
	v.StringRule("aaa", "required|string|minLen:4")
	v.StringRule("bbb", "string")
	v.AddMessages(map[string]string{
		"aaa.required":       "请填写",
		"aaa.string":         "格式不正确",
		"aaa.minLen":         "长度不少于 4 个字符",
		"bbb.string":         "格式不正确",
	})

	if !v.Validate() {
		return response.HttpFail(v.Errors.One())
	}

	// 获取数据
	var reqData struct {
		Aaa    string `form:"aaa"`
		Bbb    string `form:"bbb"`
	}

	if err := v.BindStruct(&reqData); err != nil {
		
	}

以上代码,我发现 reqData.Bbb 是没有获取到绑定值的?是不是没有填写 required 就无法验证和获取到对应的值,
还有如果上面的代码我在 AddMessages 中去掉 aaa 的 required 也会导致同样的问题,也就是说如果 AddMessages 不填写 required 的项都会被忽略,也没有期望的默认提示信息。我认为这一个 BUG,不清楚你们有遇到这样的问题吗?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions