W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
為了避免結(jié)構(gòu)體默認(rèn)值帶來(lái)的困惑,從?goframe v2.0
?版本開(kāi)始,我們?cè)黾恿艘粋€(gè)?Assoc
?方法,用于結(jié)構(gòu)體校驗(yàn)時(shí)嚴(yán)格按照給定的參數(shù)而不是按照結(jié)構(gòu)體的屬性值,而校驗(yàn)規(guī)則同樣會(huì)自動(dòng)讀取結(jié)構(gòu)體中的?gvalid tag
?。
該特定對(duì)接收客戶端請(qǐng)求參數(shù)校驗(yàn)的場(chǎng)景特別有用。
package main
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
)
func main() {
type User struct {
Name string `v:"required#請(qǐng)輸入用戶姓名"`
Type int `v:"required#請(qǐng)選擇用戶類型"`
}
var (
ctx = gctx.New()
user = User{}
data = g.Map{
"name": "john",
}
)
err := g.Validator().Assoc(data).Data(user).Run(ctx)
if err != nil {
g.Dump(err.Items())
}
}
執(zhí)行后,終端輸出:
[
{
"Type": {
"required": "請(qǐng)選擇用戶類型"
}
}
]
可以看到,結(jié)構(gòu)體中的屬性?Type
?校驗(yàn)規(guī)則?required
?并沒(méi)有受到默認(rèn)值的影響,仍舊被執(zhí)行了預(yù)期的校驗(yàn)檢查。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: