新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗(yàn)-遞歸校驗(yàn)
?gvalid?校驗(yàn)組件支持強(qiáng)大的遞歸校驗(yàn)特性。如果給定的校驗(yàn)數(shù)據(jù)中的屬性或者鍵值為?struct/map/slice?類型時(shí),將會(huì)被自動(dòng)執(zhí)行遞歸校驗(yàn)。我們來看兩個(gè)示例:

成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)從江,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
示例1,struct遞歸校驗(yàn)
package main
import (
"fmt"
"github.com/GOgf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
)
type SearchReq struct {
Key string `v:"required"`
Option SearchOption
}
type SearchOption struct {
Page int `v:"min:1"`
Size int `v:"max:100"`
}
func main() {
var (
ctx = gctx.New()
req = SearchReq{
Key: "GoFrame",
Option: SearchOption{
Page: 1,
Size: 10000,
},
}
)
err := g.Validator().Data(req).Run(ctx)
fmt.Println(err)
}執(zhí)行后,終端輸出:
The Size value `10000` must be equal or lesser than 100
示例2,slice遞歸校驗(yàn)
package main
import (
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
)
func main() {
type Student struct {
Name string `v:"required#Student Name is required"`
Age int
}
type Teacher struct {
Name string
Students []Student
}
var (
ctx = gctx.New()
teacher = Teacher{}
data = g.Map{
"name": "john",
"students": `[{"age":2},{"name":"jack", "age":4}]`,
}
)
err := g.Validator().Assoc(data).Data(teacher).Run(ctx)
fmt.Println(err)
}執(zhí)行后,終端輸出:
Student Name is required
示例3,map遞歸校驗(yàn)
package main
import (
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
)
func main() {
type Student struct {
Name string `v:"required#Student Name is required"`
Age int
}
type Teacher struct {
Name string
Students map[string]Student
}
var (
ctx = gctx.New()
teacher = Teacher{
Name: "Smith",
Students: map[string]Student{
"john": {Name: "", Age: 18},
},
}
)
err := g.Validator().Data(teacher).Run(ctx)
fmt.Println(err)
}執(zhí)行后,終端輸出:
Student Name is required 網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗(yàn)-遞歸校驗(yàn)
當(dāng)前地址:http://www.dlmjj.cn/article/dppodse.html


咨詢
建站咨詢
