在GoFrame的gvalid包中,校验规则的执行顺序是有序的,按照规则定义的顺序进行验证。这意味着,如果你在验证规则中定义了多个条件,它们将按照定义的顺序逐一执行。

以下是一个例子,演示了校验规则的有序性:
package main

import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/util/gvalid"
)

func main() {
// 初始化GoFrame框架
g.Init()

// 定义待验证的Map数据
data := g.Map{
"age": 17,
}

// 定义验证规则
rules := g.MapStrStr{
"age": "required|between:18,60",
}

// 使用gvalid.CheckMap进行Map校验
if err := gvalid.CheckMap(data, rules, nil); err != nil {
fmt.Println("Map校验失败:", err)
return
}

// 输出验证成功信息
fmt.Println("Map校验成功!")
}

在这个例子中,我们定义了一个待验证的Map数据data,其中包含一个年龄字段age,然后定义了验证规则rules,规定了年龄字段必须在18到60之间。

当我们使用gvalid.CheckMap进行校验时,由于年龄字段的值是17,不在规定的范围内,因此会触发校验失败。这是因为规则中required规则要求字段必须存在,而between:18,60规则则要求年龄在18到60之间。

在实际应用中,确保验证规则的有序性可以帮助你更精确地控制验证逻辑。如果某个规则失败,后续的规则将不会执行。如果需要调整校验规则的顺序,只需在rules中调整规则的排列顺序即可。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7584/GoFrame