av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗-校驗結果

基本介紹

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

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

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)
}

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

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

簡要說明:

獲取校驗結果的值可以通過多個校驗結果方法獲取,為讓各位開發(fā)者有充分的理解,詳細說明以下:

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

gerror.Current支持

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

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#請輸入用戶姓名"`
		Type int    `v:"required|min:1#|請選擇用戶類型"`
	}
	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)?來獲取校第一條驗錯誤信息。執(zhí)行后,終端輸出:

{
    "Name": {
        "required": "請輸入用戶姓名",
    },
    "Type": {
        "min": "請選擇用戶類型",
    },
}
"請輸入用戶姓名"

需要注意的是,數(shù)據(jù)校驗時存在順序性校驗和非順序性校驗,這會對獲取第一條錯誤信息的結果產生影響。


網(wǎng)頁名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame數(shù)據(jù)校驗-校驗結果
文章路徑:http://uogjgqi.cn/article/dhcejsh.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流