validation 来源于 beego 框架 https://github.com/astaxie/beego
beego 是免费、开源的,在 beego 的 MVC 架构中的 controller 设计的有 Form validation ,也就是表单验证。
表单验证模块是用于数据验证和错误收集的。
目录
validation 安装
// validation 用于(表单)验证
go get -u github.com/astaxie/beego/validation
validation 的使用
可以先看看 validation 的自述
https://github.com/beego/beedoc/blob/master/en-US/mvc/controller/validation.md
在代码中直接使用
先声明一个 Validation 结构类型的变量 valid
// 创建一个验证器变量,类型是 Validation 结构类型
// Validation = 验证上下文管理数据验证和错误消息。
valid := validation.Validation{}
valid.Min(obj,min,key)
验证 obj 是不是大于等于 min,key 一般用来表示 obj 是什么。
如果 obj 的值大于等于 min,返回的 *Resutl 中的 Error 为 nil;
如果 obj 的值小于 min,返回的 *Result 中的 Error 不为nil(具体错误信息),此时的 Error 会追加到变量 valid 的 Errors 切片中。
// 如果obj的类型为int,则测试 obj 是否大于 min
func (v *Validation) Min(obj interface{}, min int, key string) *Result
valid.HasErrors()
判断表单验证过程中是否遇到过错误。
如果上述 valid 中的 Errors 切片为 nil (没有错误消息),则返回 false,不为 nil(有错误消息) ,则返回 true。
// HasErrors 检查结构体 v 中的 Errors 切片是否有错误数据
func (v *Validation) HasErrors() bool
Message("obj 的值不能小于 min")
重新设置错误消息。
如果上述 valid.Min(obj,min,key) 返回结果中 Error 不为 nil 的,Message 可以修改 Error 的内容。Message 也适用其他验证。
用法:valid.Min(obj,min,key).Message("obj 的值不能小于 min")
// Message 重新设置结果消息
func (r *Result) Message(message string, args ...interface{}) *Result
valid.Valid(obj)
验证 obj 是不是一个结构体或者结构体指针。
如果 obj 是结构体或者结构体指针,返回 true 和 nil,否则 返回 false 和 err。
// Valid 验证一个结构体。
// obj 形参必须是结构体或结构指针
func (v *Validation) Valid(obj interface{}) (b bool, err error)
未完待续……