validation - 如何在自定义验证函数中获取结构名称

标签 validation go

这是我的结构:

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/

相关文章:

validation - W3C 验证重要吗?

javascript - MyEclipse 在 JSP 中禁用 javascript 验证

json - 在 render.Bind 中置空 http.Request.Body

golang 闭包从范围中捕获错误的值

C++ cin 只接受数值

javascript - 使用 JavaScript 设置 HTML5 输入列表值

ruby-on-rails - 在保存到 Rails 之前将输入转换为整数

postgresql - DefaultServeMux 中的 SQL 给出错误

go - 如何解析这个日期2018-10-22T2250?

arrays - 响应为空结构