日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗-遞歸校驗

?gvalid?校驗組件支持強大的遞歸校驗特性。如果給定的校驗數(shù)據(jù)中的屬性或者鍵值為?struct/map/slice?類型時,將會被自動執(zhí)行遞歸校驗。我們來看兩個示例:

成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務從江,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220

示例1,struct遞歸校驗

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遞歸校驗

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遞歸校驗

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

文章標題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗-遞歸校驗
網(wǎng)址分享:http://m.5511xx.com/article/dppodse.html