新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrameStruct校驗(yàn)-Assoc關(guān)聯(lián)
為了避免結(jié)構(gòu)體默認(rèn)值帶來的困惑,從?GOframe v2.0?版本開始,我們?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?并沒有受到默認(rèn)值的影響,仍舊被執(zhí)行了預(yù)期的校驗(yàn)檢查。
分享名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrameStruct校驗(yàn)-Assoc關(guān)聯(lián)
URL地址:http://m.fisionsoft.com.cn/article/dpgdgjg.html


咨詢
建站咨詢
