继续创作,加速生长!这是我参与「日新方案 6 月更文挑战」的第22天,点击查看活动概况
前言摘要
这篇文章将会为我们介绍GoFrame数据校验中校验目标的知识点,包含:Validator目标龚变量名的命名规则俊常用办法的介绍龚俊、单数据校变量名验、校验Map、校验结构体的示例。
基变量与函数本概念
数据校验组件供给了数据校验目标:用于数据校变量的定义验统一的配置管理,支撑我们便捷的进GitHub行github官网链式操作。宫颈癌
办法介绍
type Validator func New() *Validator func (v *Validator) CheckMap(params interface{}) Error func (v *Validator) CheckStruct(object interface{}) Error func (v *Validator) CheckValue(value interface{}) Error func (v *Validator) Clone() *Validator func (v *Validator) Ctx(ctx context.Context) *Validator func (v *Validator) Data(data interface{}) *Validator func (v *Validator) I18n(i18nManager *gi18n.Manager) *Validator func (v *Validator) Messages(messages interface{}) *Validator func (v *Validator) Rules(rules interface{}) *Validator
简要阐明
-
New()
办法用于创立一个新的校验目标。 -
CheckValue/CheckgoogleMap/CheckStruct
办法用于特定参数类型的数据校验,我github中文官网网页们在项目开发中运用比较多的是Che工龄越长退休金越多吗ckStru变数据校验量的定义ct
,也建议我们运用CheckStruct
。 -
Ctx(gitee)
办法用于传递Conte工龄越长退休金越多吗x工龄差一年工资差多少t
上下文变量。 -
I18github永久回家地址n()
办法用于设置当前校验目标的I18N
国际化组件,默许情况下,校验组件运用的是框架大局默许的i18n
组件目标。 Dgithub中文官网网页ata()
办法用于设置需求校验的数据集合,支撑map
类型或许str工龄越长退休金越多吗uct
类型。R变量之间的关系ulgithub永久回家地址es()
办法用于传递当前链式操作校验giti轮胎的自变量名定义校验规矩,支撑运用[]string
类型或许map
类型。-
Messages()
办法giti轮胎用于传递github中文官网网页当前链式操作校验的自定义过错提示信息,往往运用map
类型传递,详细看后续代码示例。
留意问题TIPS
在数据校验目标的CheckValue/CheckMgithub官网ap/CheckStruct
办法中,不存git命令在Context
上下文变量参数,而是通过github永久回家地址链式操作的Ctx
办法来操gitee控。
GoFramegithub是什么的g
模块中定义了Validator
办法来方便创立校验目标:官方也引荐我们运用g
模块的g.VGitHubalidator()
办法来方便创立一个校验目标。
链式操作
示例1:单数据校验
简单示例
err := g.Validator().Rules("min:60").Messages("考试不及格").CheckValue(16) fmt.Println(err.String()) //打印成果:考试不及格
进阶示例
package main import ( "fmt" "github.com/gogf/gf/frame/g" ) func main() { data := g.Map{ "password": "123", //这个的效果仅是定义了这个结构设置了默许值,并不代表着传入了值 } //Data()中的参数是需求进行校验的数据集合,常用于map或许结构体类型。 //CheckValue()是输入的参数 err := g.Validator().Data(data).Rules("required-with:password").Messages("请输入承认暗码").CheckValue("") if err != nil { fmt.Println("CheckValue传入为空时:" + err.String()) // 请输入承认暗码 } else { fmt.Println("CheckValue传入为空时:校验通过") } err = g.Validator().Data(data).Rules("required-with:password").Messages("请输入承认暗码").CheckValue("1") if err != nil { fmt.Println("CheckValue传入不为空时:" + err.String()) // 请输入承认暗码 } else { fmt.Println("CheckValue传入不为空时:校验通过") } }
进阶示例打印成果

示例2:Map
数据校验
params := map[string]interface{}{ "passport": "", "password": "wangzhongyang", "password2": "zhongyang", } rules := map[string]string{ "passport": "required|length:6,16", "password": "required|length:6,16|same:password2", "password2": "required|length:6,16", } messages := map[string]interface{}{ "passport": "账号不能为空|账号长度应当在:min到:max之间", "password": map[string]string{ "required": "暗码不能为空", "same": "两次暗码输入不相等", }, } err := g.Validator().Messages(messages).Rules(rules).CheckMap(params) if err != nil { g.Dump(err.Maps()) }
履行后,终端输出:
{ "passport": { "length": "账号长度应当在6到16之间", "required": "账号不能为空" }, "password": { "same": "两次暗码输入不相等" } }
示例3:Struct
数据校验
type User struct { Name string `v:"required#请输入用户名字"` Type int `v:"required#请挑选用户类型"` } data := g.Map{ "name": "wangzhongyang", } user := User{} if err := gconv.Scan(data, &user); err != nil { panic(err) } err := g.Validator().Data(data).CheckStruct(user) if err != nil { fmt.Println(err.Items()) //[map[Type:map[required:请挑选用户类型]]] }
总结
这篇文章为我们介绍了GoFrame数据校验之校验目标的知宫颈癌识点,包含:Validator公司让职工下班发手机电量截图目标常用办法的介绍、单数据校验、校验Map、校验结构体的示例。
最终
感谢阅读,欢迎我们三连:点赞、保藏、投币(重视)!!!github永久回家地址

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)