需要检查至少一个字段应该存在电子邮件,电话至少一个是必填的
目前我有自定义验证程序
func validateEmailPhone(fl validator.FieldLevel) bool {
user := fl.Top().Interface().(models.User)
validate := validator.Validate{}
if user.Email == "" && user.Phone == "" {
return false
}
if user.Email != "" {
if err := validate.Var(user.Email, "email"); err != nil {
return false
}
}
if user.Phone != "" {
if err := validate.Var(user.Phone, "e164"); err != nil {
return false
}
}
return true
}
但它的恐慌
用户是gorm模型
在本方案中,如何检查这两个字段
1条答案
按热度按时间9nvpjoqh1#
validator
中有大量的条件required
标记,在您的情况下,您可能需要required_without_all
+omitempty
。required_without_all
-如果列表中的所有字段均为空,则使字段成为必填字段。omitempty
-仅允许字段为空。请记住,required标记必须在omitempty之前。
Example