下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第GoFrame框架数据校验之校验对象校验结构体目录前言摘要基本概念方法介绍简要说明注意问题TIPS链式操作示例1:单数据校验简单示例进阶示例进阶示例打印结果示例2:Map数据校验示例3:Struct数据校验总结
前言摘要
这篇文章将会为大家介绍GoFrame数据校验中校验对象的知识点,包括:Validator对象常用方法的介绍、单数据校验、校验Map、校验结构体的示例。
基本概念
数据校验组件提供了数据校验对象:用于数据校验统一的配置管理,支持我们便捷的进行链式操作。
方法介绍
typeValidator
funcNew()*Validator
func(v*Validator)CheckMap(paramsinterface{})Error
func(v*Validator)CheckStruct(objectinterface{})Error
func(v*Validator)CheckValue(valueinterface{})Error
func(v*Validator)Clone()*Validator
func(v*Validator)Ctx(ctxcontext.Context)*Validator
func(v*Validator)Data(datainterface{})*Validator
func(v*Validator)I18n(i18nManager*gi18n.Manager)*Validator
func(v*Validator)Messages(messagesinterface{})*Validator
func(v*Validator)Rules(rulesinterface{})*Validator
简要说明
New()方法用于创建一个新的校验对象。CheckValue/CheckMap/CheckStruct方法用于特定参数类型的数据校验,我们在项目开发中使用比较多的是CheckStruct,也建议大家使用CheckStruct。Ctx()方法用于传递Context上下文变量。I18n()方法用于设置当前校验对象的I18N国际化组件,默认情况下,校验组件使用的是框架全局默认的i18n组件对象。Data()方法用于设置需要校验的数据集合,支持map类型或者struct类型。Rules()方法用于传递当前链式操作校验的自定义校验规则,支持使用[]string类型或者map类型。Messages()方法用于传递当前链式操作校验的自定义错误提示信息,往往使用map类型传递,具体看后续代码示例。
注意问题TIPS
在数据校验对象的CheckValue/CheckMap/CheckStruct方法中,不存在Context上下文变量参数,而是通过链式操作的Ctx方法来控制。
GoFrame的g模块中定义了Validator方法来快捷创建校验对象:官方也推荐我们使用g模块的g.Validator()方式来快捷创建一个校验对象。
链式操作
示例1:单数据校验
简单示例
err:=g.Validator().Rules("min:60").Messages("考试不及格").CheckValue(16)
fmt.Println(err.String())//打印结果:考试不及格
进阶示例
packagemain
import(
"fmt"
"/gogf/gf/frame/g"
funcmain(){
data:=g.Map{
"password":"123",//这个的作用仅是定义了这个结构设置了默认值,并不代表着传入了值
//Data()中的参数是需要进行校验的数据集合,常用于map或者结构体类型。
//CheckValue()是输入的参数
err:=g.Validator().Data(data).Rules("required-with:password").Messages("请输入确认密码").CheckValue("")
iferr!=nil{
fmt.Println("CheckValue传入为空时:"+err.String())//请输入确认密码
}else{
fmt.Println("CheckValue传入为空时:校验通过")
err=g.Validator().Data(data).Rules("required-with:password").Messages("请输入确认密码").CheckValue("1")
iferr!=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)
iferr!=nil{
g.Dump(err.Maps())
执行后,终端输出:
{
"passport":{
"length":"账号长度应当在6到16之间",
"required":"账号不能为空"
"password":{
"same":"两次密码输入不相等"
示例3:Struct数据校验
typeUserstruct{
Namestring`v:"required#请输入用户姓名"`
Typeint`v:"required#请选择用户类型"`
data:=g.Map{
"name":"wangzhongyang",
user:=User{}
iferr:=gconv.Scan(data,amp;user);err!=nil{
panic(err)
err:=g.Validator().Data(data).CheckStruct(user)
iferr!=nil{
fmt.Println(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026汽车制造市场调研及发展技巧与投资回报预测报告
- 2026中国运动安全预警系统人工智能技术融合应用前景报告
- 2026中国涡流泵市场消费需求变化与用户行为调研报告
- 2026汽车零部件行业竞争格局调研与未来发展展望分析研究报告
- 新版教科版六年级上册科学(课件)第4单元 5机械钟摆
- 2026叶黄素酯原料产地资源分布与采购策略研究报告
- 2026中国消费品零售市场发展趋势及商业模式创新与投资前景预测研究报告
- 2026人工智能技术发展市场潜力分析探讨战略规划投资价值评估
- 2026能源监控设备行业市场应用分析评估发展策略研究
- 工业机器视觉技术与应用 课件 第五章-工业机器视觉目标检测与跟踪
- JG/T 478-2015建筑用穿墙防水对拉螺栓套具
- 肌间静脉血栓抗凝治疗
- GB/T 10810.5-2025眼镜镜片第5部分:表面耐磨试验方法
- 《复杂系统理论》课件
- 外出参加护理会议后汇报
- T-CTSS 3-2024 茶艺职业技能竞赛技术规程
- 2023年教育部高中技术课程标准
- 安华农险辽宁省(不含大连)中央财政玉米种植收入保险
- CJT 340-2016 绿化种植土壤
- 高标准农田改造提升建设项目投标方案(技术标)
- 光学成像技术1-课件
评论
0/150
提交评论