1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| type SignupUsingPhoneRequest struct { Phone string `json:"phone,omitempty" valid:"phone"` VerifyCode string `json:"verify_code,omitempty" valid:"verify_code"` Name string `valid:"name" json:"name"` Password string `valid:"password" json:"password,omitempty"` PasswordConfirm string `valid:"password_confirm" json:"password_confirm,omitempty"` }
func SignupUsingPhone(data interface{}, c *gin.Context) map[string][]string {
rules := govalidator.MapData{ "phone": []string{"required", "digits:11", "not_exists:users,phone"}, "name": []string{"required", "alpha_num", "between:3,20", "not_exists:users,name"}, "password": []string{"required", "min:6"}, "password_confirm": []string{"required"}, "verify_code": []string{"required", "digits:6"}, }
messages := govalidator.MapData{ "phone": []string{ "required:手机号为必填项,参数名称 phone", "digits:手机号长度必须为 11 位的数字", }, "name": []string{ "required:用户名为必填项", "alpha_num:用户名格式错误,只允许数字和英文", "between:用户名长度需在 3~20 之间", }, "password": []string{ "required:密码为必填项", "min:密码长度需大于 6", }, "password_confirm": []string{ "required:确认密码框为必填项", }, "verify_code": []string{ "required:验证码答案必填", "digits:验证码长度必须为 6 位的数字", }, }
errs := validate(data, rules, messages)
_data := data.(*SignupUsingPhoneRequest) errs = validators.ValidatePasswordConfirm(_data.Password, _data.PasswordConfirm, errs) errs = validators.ValidateVerifyCode(_data.Phone, _data.VerifyCode, errs)
return errs }
|