validate
validate copied to clipboard
[question]全局自定义验证器方法中怎么获取其他字段的值
需要获取其他字段值进行判断
全局自定义验证器 还不支持 获取到其他字段的值
@inhere 可以考虑添加吗?这种场景会存在很多
@inhere 可以考虑添加吗?这种场景会存在很多
正好我也需要这个特性,所以改了一版,目前暂时用go mod replace替换可以使用。
https://github.com/devhaozi/validate
参考测试用例,自定义验证器的第一个参数设置为data DataFace即可获取其他字段的值。
func TestValidation_Validate(t *testing.T) {
v := New(M{
"name": "haozi",
})
v.AddValidator("checkName", func(data DataFace, val any) bool {
name, exist := data.Get("name")
return name == "haozi" && exist
})
v.StringRule("name", "required|checkName")
assert.True(t, v.Validate())
v = New(M{
"age": 2,
})
v.AddValidator("checkAge", func(data DataFace, val any) bool {
age, exist := data.Get("age")
return age == 2 && exist
})
v.StringRule("age", "required|checkAge")
assert.True(t, v.Validate())
}
@devhaozi 赞👍 可以发个PR 😄