基本用法
1. 使用 gvalid.CheckMap 进行 Map 数据校验:
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.com",
}
rules := []string{
"name@required|min:3|max:20",
"age@required|between: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")
}
}
2. 使用 gvalid.CheckStruct 进行结构体数据校验:
package main
import (
"fmt"
"github.com/gogf/gf/util/gvalid"
)
type User struct {
Name string `v:"required|min:3|max:20"`
Age int `v:"required|between:18,60"`
Email string `v:"required|email"`
}
func main() {
user := User{
Name: "John",
Age: 25,
Email: "john@example.com",
}
if e := gvalid.CheckStruct(&user, nil); e != nil {
fmt.Println("Validation failed:")
fmt.Println(e.Map())
} else {
fmt.Println("Validation passed")
}
}
常用验证规则
gvalid 包支持丰富的验证规则,以下是一些常用的规则:
- required: 必填项。
- min、max: 最小值和最大值。
- between:min,max: 值必须在指定范围内。
- email: 邮箱格式。
- alpha、alphaNum、alphaDash: 字母、字母数字、字母数字下划线破折号。
- in:val1,val2,...: 值必须在指定的值集合内。
校验结果处理
gvalid 包返回的错误对象是 gvalid.Error 类型,你可以通过该类型的方法获取详细的校验结果信息。例如:
e := gvalid.CheckMap(data, rules)
if e != nil {
fmt.Println("Validation failed:")
fmt.Println("Error messages:", e.String())
fmt.Println("Error fields:", e.Fields())
fmt.Println("Error maps:", e.Map())
} else {
fmt.Println("Validation passed")
}
这样,你可以更灵活地处理校验结果,以便根据具体的业务需求进行处理和展示。
GoFrame 的数据校验功能非常强大,支持丰富的验证规则,适用于各种场景下的数据校验需求。
转载请注明出处:http://www.zyzy.cn/article/detail/7573/GoFrame