本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

表单验证

一、安装

go get github.com/astaxie/beego/validation

二、使用

1.结构体定义tag

  • 验证函数写在 “valid” tag 的标签里
  • 各个函数之间用分号 “;” 分隔,分号后面可以有空格
  • 参数用括号 “()” 括起来,多个参数之间用逗号 “,” 分开,逗号后面可以有空格
  • 正则函数(Match)的匹配模式用两斜杠 “/” 括起来
  • 各个函数的结果的 key 值为字段名.验证函数名
type LoginParams struct { Name string valid:"Required" Age int valid:"Required;MinSize(2)" Addr string valid:"Required" } func (l *LoginController) Post() { valid := validation.Validation{} // 解析到结构体 params := LoginParams{} if err := l.ParseForm(&params); err != nil { //handle error return } //重写错误信息:validation.SetDefaultMessage(map) var messages = map[string]string{ "Required": "不能为空", "MinSize": "最短长度为 %d", "Length": "长度必须为 %d", "Numeric": "必须是有效的数字", "Email": "必须是有效的电子邮件地址", "Mobile": "必须是有效的手机号码", } validation.SetDefaultMessage(messages) // 校验 b, err := valid.Valid(&params) // 验证StructTag 是否正确 if err != nil { fmt.Println(err) } if !b { // 验证没通过,则b为false for _, err := range valid.Errors { fmt.Println(err.Key, err.Message) message := err.Key + err.Message l.Ctx.WriteString(message) } } }

1656人已阅读,今天你学习了吗?

添加新回复