日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第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教程:GoFrameMap校驗(yàn)-校驗(yàn)順序性

基本介紹

如果將之前的示例代碼多執(zhí)行幾次之后會發(fā)現(xiàn),返回的結(jié)果是沒有排序的,而且字段及規(guī)則輸出的先后順序完全是隨機(jī)的。即使我們使用?FirstItem?, ?FirstString()?等其他方法獲取校驗(yàn)結(jié)果也是一樣,返回的校驗(yàn)結(jié)果不固定。那是因?yàn)樾r?yàn)的規(guī)則我們傳遞的是?map?類型,而GOlang的?map?類型并不具有有序性,因此校驗(yàn)的結(jié)果和規(guī)則一樣是隨機(jī)的,同一個(gè)校驗(yàn)結(jié)果的同一個(gè)校驗(yàn)方法多次獲取結(jié)果值返回的可能也不一樣了。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了天壇街道免費(fèi)建站歡迎大家使用!

順序校驗(yàn)

我們來改進(jìn)一下以上的示例:校驗(yàn)結(jié)果中如果不滿足?required?那么返回對應(yīng)的錯(cuò)誤信息,否則才是后續(xù)的校驗(yàn)錯(cuò)誤信息;也就是說,返回的錯(cuò)誤信息應(yīng)當(dāng)和我設(shè)定規(guī)則時(shí)的順序一致。如下:

package main

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

func main() {
	var (
		ctx    = gctx.New()
		params = map[string]interface{}{
			"passport":  "",
			"password":  "123456",
			"password2": "1234567",
		}
		rules = []string{
			"passport@required|length:6,16#賬號不能為空|賬號長度應(yīng)當(dāng)在{min}到{max}之間",
			"password@required|length:6,16|same:password2#密碼不能為空|密碼長度應(yīng)當(dāng)在{min}到{max}之間|兩次密碼輸入不相等",
			"password2@required|length:6,16#",
		}
	)  
	err := g.Validator().Rules(rules).Data(params).Run(ctx)  
	if err != nil {
		fmt.Println(err.Map())
		fmt.Println(err.FirstItem())
		fmt.Println(err.FirstError())
	}
}

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

map[length:賬號長度應(yīng)當(dāng)在6到16之間 required:賬號不能為空]
passport map[length:賬號長度應(yīng)當(dāng)在6到16之間 required:賬號不能為空]
賬號不能為空

可以看到,我們想要校驗(yàn)結(jié)果滿足順序性,只需要將?rules?參數(shù)的類型修改為?[]string?,按照一定的規(guī)則設(shè)定即可,并且?msgs?參數(shù)既可以定義到?rules?參數(shù)中,也可以分開傳入(使用第三個(gè)參數(shù))。?rules?的這種滿足順序性校驗(yàn)結(jié)果返回的規(guī)則,我們稱之為?gvalid tag?,與前面?Struct?校驗(yàn)章節(jié)介紹的?gvalid tag?一致。


分享名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrameMap校驗(yàn)-校驗(yàn)順序性
URL鏈接:http://www.dlmjj.cn/article/dpcjcch.html