func (a *Admin) Validate(v *revel.Validation) { v.Required(a.Username).Message("请输入用户名!") valid := v.Match(a.Username, regexp.MustCompile("^\\w*$")).Message("只能使用字母、数字和下划线!") if valid.Ok { if a.HasName() { err := &revel.ValidationError{ Message: "该用户名已经注册过!", Key: "a.Username", } valid.Error = err valid.Ok = false v.Errors = append(v.Errors, err) } } v.Required(a.Email).Message("请输入Email") valid = v.Email(a.Email).Message("无效的电子邮件!") if valid.Ok { if a.HasEmail() { err := &revel.ValidationError{ Message: "该邮件已经注册过!", Key: "a.Email", } valid.Error = err valid.Ok = false v.Errors = append(v.Errors, err) } } v.Required(a.Password).Message("请输入密码!") v.MinSize(a.Password, 3).Message("密码最少三位!") }
func (user *User) Validate(v *revel.Validation) { v.Required(user.Name).Message("请输入用户名") valid := v.Match(user.Name, nameRegex).Message("只能使用字母、数字和下划线") if valid.Ok { if user.HasName() { err := &revel.ValidationError{ Message: "该用户名已经注册过", Key: "user.Name", } valid.Error = err valid.Ok = false v.Errors = append(v.Errors, err) } } v.Required(user.Email).Message("请输入Email") valid = v.Email(user.Email).Message("无效的电子邮件") if valid.Ok { if user.HasEmail() { err := &revel.ValidationError{ Message: "该邮件已经注册过", Key: "user.Email", } valid.Error = err valid.Ok = false v.Errors = append(v.Errors, err) } } v.Required(user.Password).Message("请输入密码") v.MinSize(user.Password, 3).Message("密码最少三位") v.Required(user.ConfirmPassword == user.Password).Message("密码不一致") }
// TODO: Make an interface for Validate() and then validation can pass in the // key prefix ("booking.") func (booking Booking) Validate(v *revel.Validation) { v.Required(booking.User) v.Required(booking.Hotel) v.Required(booking.CheckInDate) v.Required(booking.CheckOutDate) v.Match(booking.CardNumber, regexp.MustCompile(`\d{16}`)). Message("Credit card number must be numeric and 16 digits") v.Check(booking.NameOnCard, revel.Required{}, revel.MinSize{3}, revel.MaxSize{70}, ) }