这是我的结构:
type User struct {
Name `validate:"custom_validation"`
}
这是我的自定义验证:
func customFunc(fl validator.FieldLevel) bool {
// I want to get struct name inside here
// do some validations...
return true
}
validate.RegisterValidation("custom_validation", customFunc)
原因是我需要对数据库做一些检查,为此我需要表名,因此我需要结构名称,因为表名称类似于结构名称。如果我对表名进行硬编码,则此 customFunc
不能用于在其他结构中进行验证。
我该怎么做?
引用:https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Custom_Validation_Functions
最佳答案
简单
获取字段名称:
fl.FieldName()
获取字段的值:
fl.Field().String()
获取结构类型:
fl.Parent().Type().String()
关于validation - 如何在自定义验证函数中获取结构名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74201813/