Go语言 如何在自定义验证函数中获取结构名称

yeotifhr  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(124)

这是我结构体:

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

ovfsdjhp

ovfsdjhp1#

简单
取得字段名称:
fl.FieldName()
获取字段值:
fl.Field().String()
获取结构类型:
fl.Parent().Type().String()

相关问题