日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

我們可以將給定的變量當(dāng)做一個(gè)完整的參數(shù)進(jìn)行校驗(yàn),即單數(shù)據(jù)校驗(yàn)。如果變量是?Struct/Map?復(fù)雜類型,我們需要校驗(yàn)其內(nèi)部的屬性/鍵值對(duì)的場(chǎng)景,將會(huì)在后續(xù)章節(jié)介紹。單數(shù)據(jù)校驗(yàn)必須通過?Data?方法給定被校驗(yàn)數(shù)據(jù),?Rule?方法給定校驗(yàn)規(guī)則。單數(shù)據(jù)校驗(yàn)比較簡單,我們來看幾個(gè)示例。

校驗(yàn)數(shù)據(jù)長度,使用默認(rèn)的錯(cuò)誤提示

package main

import (
	"fmt"
	"github.com/GOgf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gctx"
)

func main() { 	
	var (
		ctx  = gctx.New()
		rule = "length:6,16"
	)

	if err := g.Validator().Rules(rule).Data("123456").Run(ctx); err != nil {
		fmt.Println(err.String())
	}
	if err := g.Validator().Rules(rule).Data("12345").Run(ctx); err != nil {
		fmt.Println(err.String())
	} 
}

執(zhí)行后,終端輸出:

The value `12345` length must be between 6 and 16

校驗(yàn)數(shù)據(jù)類型及大小,并且使用自定義的錯(cuò)誤提示

package main

import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gctx"
)

func main() {
	var (
		ctx      = gctx.New()
		rule     = "integer|between:6,16"
		messages = "請(qǐng)輸入一個(gè)整數(shù)|參數(shù)大小不對(duì)啊老鐵"
		value    = 5.66
	)

	if err := g.Validator().Rules(rule).Messages(messages).Data(value).Run(ctx); err != nil {
		g.Dump(err.Map())
	}
}

執(zhí)行后,終端輸出:

{
    "integer": "請(qǐng)輸入一個(gè)整數(shù)",
    "between": "參數(shù)大小不對(duì)啊老鐵",
}

可以看到,多個(gè)規(guī)則以及多個(gè)自定義錯(cuò)誤提示之間使用英文 ?|? 號(hào)進(jìn)行分割,注意自定義錯(cuò)誤提示的順序和多規(guī)則的順序一一對(duì)應(yīng)。?messages?參數(shù)除了支持?string?類型以外,還支持?map[string]string?類型,請(qǐng)看以下例子:

package main

import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gctx"
)

func main() {
	var (
		ctx      = gctx.New()
		rule     = "url|min-length:11"
		value    = "GoFrame.org"
		messages = map[string]string{
			"url":        "請(qǐng)輸入正確的URL地址",
			"min-length": "地址長度至少為{min}位",
		}
	)
	if err := g.Validator().Rules(rule).Messages(messages).Data(value).Run(ctx); err != nil {
		g.Dump(err.Map())
	}
}

執(zhí)行后,終端輸出:

{
    "url": "請(qǐng)輸入正確的URL地址",
}

使用自定義正則校驗(yàn)數(shù)據(jù)格式,使用默認(rèn)錯(cuò)誤提示

package main

import (
	"fmt"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gctx"
)

func main() {  
	var (
		ctx  = gctx.New()
		rule = `regex:\d{6,}|\D{6,}|max-length:16`
	)

	if err := g.Validator().Rules(rule).Data(`123456`).Run(ctx); err != nil {
		fmt.Println(err)
	}

	if err := g.Validator().Rules(rule).Data(`abcde6`).Run(ctx); err != nil {
		fmt.Println(err)
	}
}

執(zhí)行后,終端輸出:

The value `abcde6` must be in regex of: \d{6,}|\D{6,}

分享題目:創(chuàng)新互聯(lián)GoFrame教程:GoFrame 數(shù)據(jù)校驗(yàn)-單數(shù)據(jù)校驗(yàn)
標(biāo)題URL:http://www.dlmjj.cn/article/djopphj.html