這是我的結構:
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
uj5u.com熱心網友回復:
簡單的
獲取欄位名稱:
fl.FieldName()
獲取欄位值:
fl.Field().String()
獲取結構型別:
fl.Parent().Type().String()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/520327.html
標籤:验证去
