基本用法
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/util/gvalid"
)
func main() {
// 待验证的数据
data := g.Map{
"name": "John",
"age": 25,
"email": "john@example",
}
// 验证规则
rules := []string{
"name@required|alphaDash|min:6|max:12#姓名不能为空|姓名只能包含数字、字母、下划线或破折号|姓名长度必须在6到12之间",
"age@required|between:18,60#年龄不能为空|年龄必须在18到60之间",
"email@required|email#邮箱不能为空|邮箱格式不正确",
}
// 进行数据校验
if e := gvalid.CheckMap(data, rules); e != nil {
fmt.Println("Validation failed:")
fmt.Println(e.Map())
} else {
fmt.Println("Validation passed")
}
}
在上述示例中,我们使用 gvalid.CheckMap 函数对 data 进行了数据校验。rules 数组定义了验证规则,其中包含了对每个字段的验证条件。如果数据验证失败,将输出相应的错误信息;否则,输出验证通过的消息。
常用验证规则
- required:必填项。
- min、max:最小值和最大值。
- between:min,max:值必须在指定范围内。
- email:邮箱格式。
- alpha、alphaNum、alphaDash:字母、字母数字、字母数字下划线破折号。
- in:val1,val2,...:值必须在指定的值集合内。
结构体数据校验
package main
import (
"fmt"
"github.com/gogf/gf/util/gvalid"
)
type User struct {
Name string `v:"required|alphaDash|min:6|max:12#姓名不能为空|姓名只能包含数字、字母、下划线或破折号|姓名长度必须在6到12之间"`
Age int `v:"required|between:18,60#年龄不能为空|年龄必须在18到60之间"`
Email string `v:"required|email#邮箱不能为空|邮箱格式不正确"`
}
func main() {
user := User{
Name: "John",
Age: 25,
Email: "john@example",
}
if e := gvalid.CheckStruct(&user, nil); e != nil {
fmt.Println("Validation failed:")
fmt.Println(e.Map())
} else {
fmt.Println("Validation passed")
}
}
在结构体数据校验中,我们使用了 v tag 来指定验证规则。这样可以在结构体定义中直观地添加验证规则。使用 gvalid.CheckStruct 函数来进行结构体数据的校验。
GoFrame 的数据校验功能非常灵活,支持丰富的验证规则,能够满足各种场景下的数据验证需求。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7572/GoFrame