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

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

新聞中心

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

基本介紹

校驗(yàn)結(jié)果為一個(gè)?error?錯(cuò)誤對(duì)象,內(nèi)部使用?gvalid.Error?對(duì)象實(shí)現(xiàn)。當(dāng)數(shù)據(jù)規(guī)則校驗(yàn)成功時(shí),校驗(yàn)方法返回的結(jié)果為?nil?。當(dāng)數(shù)據(jù)規(guī)則校驗(yàn)失敗時(shí),返回的該對(duì)象是包含結(jié)構(gòu)化的層級(jí)?map?,包含多個(gè)字段及其規(guī)則及對(duì)應(yīng)錯(cuò)誤信息,以便于接收端能夠準(zhǔn)確定位錯(cuò)誤規(guī)則。相關(guān)數(shù)據(jù)結(jié)構(gòu)及方法如下:https://pkg.GO.dev/github.com/gogf/gf/v2/util/gvalid

公司專(zhuān)注于為企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、購(gòu)物商城網(wǎng)站建設(shè),微信平臺(tái)小程序開(kāi)發(fā),軟件按需網(wǎng)站設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解各客戶(hù)的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶(hù)設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

type Error interface {
	Code() gcode.Code
	Current() error
	Error() string
	FirstItem() (key string, messages map[string]error)
	FirstRule() (rule string, err error)
	FirstError() (err error)
	Items() (items []map[string]map[string]error)
	Map() map[string]error
	Maps() map[string]map[string]error
	String() string
	Strings() (errs []string)
}

可以結(jié)合后續(xù)的示例理解這個(gè)數(shù)據(jù)結(jié)構(gòu)。我們可以通過(guò)?Maps()?方法獲得該原始錯(cuò)誤信息數(shù)據(jù)結(jié)構(gòu)?map?。但在大多數(shù)時(shí)候我們可以通過(guò)?Error?接口的其他方法來(lái)方便地獲取特定的錯(cuò)誤信息。

大多數(shù)情況下,我們不關(guān)心具體出錯(cuò)的校驗(yàn)規(guī)則,可以使用?Error/String?方法直接返回所有的錯(cuò)誤信息即可。大部分的方法獲取錯(cuò)誤信息時(shí)根據(jù)校驗(yàn)規(guī)則的順序性與否,返回的結(jié)果順序會(huì)不太一樣。

簡(jiǎn)要說(shuō)明:

獲取校驗(yàn)結(jié)果的值可以通過(guò)多個(gè)校驗(yàn)結(jié)果方法獲取,為讓各位開(kāi)發(fā)者有充分的理解,詳細(xì)說(shuō)明以下:

 方法 說(shuō)明
 ?Code? 常用方法。實(shí)現(xiàn)?gerror?的?Code?接口,在校驗(yàn)組件中,該方法固定返回錯(cuò)誤碼?gcode.CodeValidationFailed?
 ?Error? 常用方法。實(shí)現(xiàn)標(biāo)準(zhǔn)庫(kù)的?error.Error?接口,獲取返回所有校驗(yàn)錯(cuò)誤組成的錯(cuò)誤字符串。內(nèi)部邏輯同?String?方法
 ?Current? 常用方法。實(shí)現(xiàn)了?gerror?的?Current?接口,用于獲取校驗(yàn)錯(cuò)誤中的第一條錯(cuò)誤對(duì)象
 ?Items? 在順序性校驗(yàn)中將會(huì)按照校驗(yàn)規(guī)則順序返回校驗(yàn)錯(cuò)誤數(shù)組。其順序性只有在順序校驗(yàn)時(shí)有效,否則返回的結(jié)果是隨機(jī)的
 ?Map? 返回?FirstItem?中的出錯(cuò)自規(guī)則及對(duì)應(yīng)錯(cuò)誤信息?map?
 ?Maps? 返回所有的出錯(cuò)鍵名及對(duì)應(yīng)的出錯(cuò)規(guī)則及對(duì)應(yīng)的錯(cuò)誤信息(?map[string]map[string]error?)
 ?String? 返回所有的錯(cuò)誤信息,構(gòu)成一條字符串返回,多個(gè)規(guī)則錯(cuò)誤信息之間以?;?符號(hào)連接。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的
 ?Strings? 返回所有的錯(cuò)誤信息,構(gòu)成?[]string?類(lèi)型返回。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的
 ?FirstItem? 在有多個(gè)鍵名/屬性校驗(yàn)錯(cuò)誤的時(shí)候,用以獲取出錯(cuò)的第一個(gè)鍵名,以及其對(duì)應(yīng)的出錯(cuò)規(guī)則和錯(cuò)誤信息。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的
 ?FirstRule? 返回FirstItem中的第一條出錯(cuò)的規(guī)則及錯(cuò)誤信息。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的
 ?FirstString? 返回FirstRule中的第一條規(guī)則錯(cuò)誤信息。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的

gerror.Current支持

我們可以看到,?gvalid.Error?實(shí)現(xiàn)了?Current() error?接口,因此可以通過(guò)?gerror.Current?方法獲取它的第一條錯(cuò)誤信息,這在接口校驗(yàn)失敗時(shí)返回錯(cuò)誤信息非常方便。我們來(lái)看一個(gè)示例:

package main

import (
	"github.com/gogf/gf/v2/errors/gerror"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gctx"
	"github.com/gogf/gf/v2/util/gvalid"
)

func main() {
	type User struct {
		Name string `v:"required#請(qǐng)輸入用戶(hù)姓名"`
		Type int    `v:"required|min:1#|請(qǐng)選擇用戶(hù)類(lèi)型"`
	}
	var (
		err  error
		ctx  = gctx.New()
		user = User{}
	)
	if err = g.Validator().Data(user).Run(ctx); err != nil {
		g.Dump(err.(gvalid.Error).Maps())
		g.Dump(gerror.Current(err))
	}
}

這里使用了?gerror.Current(err)?來(lái)獲取校第一條驗(yàn)錯(cuò)誤信息。執(zhí)行后,終端輸出:

{
    "Name": {
        "required": "請(qǐng)輸入用戶(hù)姓名",
    },
    "Type": {
        "min": "請(qǐng)選擇用戶(hù)類(lèi)型",
    },
}
"請(qǐng)輸入用戶(hù)姓名"

需要注意的是,數(shù)據(jù)校驗(yàn)時(shí)存在順序性校驗(yàn)和非順序性校驗(yàn),這會(huì)對(duì)獲取第一條錯(cuò)誤信息的結(jié)果產(chǎn)生影響。


本文名稱(chēng):創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗(yàn)-校驗(yàn)結(jié)果
轉(zhuǎn)載來(lái)于:http://www.dlmjj.cn/article/dhcejsh.html