基本介绍

goframe框架提供了功能强大、使用便捷、灵活易扩展的数据/表单校验组件,由gvalid组件实现。gvalid组件实现了非常强大的数据校验功能,内置了数十种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验、自定义校验规则注册、支持i18n国际化处理、支持struct tag规则及提示信息绑定等等特性,是目前功能最强大的Go数据校验模块。

数据校验设计的灵感来源于经典的PHP Laravel框架 https://laravel.com/docs/8.x/validation 感谢Laravel ❤️

使用方式

import "github.com/gogf/gf/v2/util/gvalid"

接口文档

https://pkg.go.dev/github.com/gogf/gf/v2/util/gvalid

组件特性

gvalid组件具有以下显著特性:

  • 内置数十种常见数据校验规则,支持大部分业务场景
  • 支持Server层及命令行组件自动化校验
  • 支持基础类型及复杂对象类型参数校验
  • 支持顺序校验、灵活的校验结果处理
  • 支持自定义校验错误提示
  • 支持结构体属性递归校验
  • 支持自定义校验规则
  • 支持I18n国际化特性

相关文档





Content Menu

  • No labels

6 Comments

  1. laravel过来的 太亲切了

  2. 2.0版本非常好,请教郭老大一个问题,在v2的apiv1下配置验证规则 

    type TestReq struct {
    g.Meta `path:"/config_list" tags:"CMS设置API" method:"get" summary:"cms设置列表接口"`
    KeyWord string `v:"required#关键字不能为空"`
    }

    KeyWord为空请求返回验证

    {
        "code": 51,
        "message": "关键字不能为空",
        "data": null
    }
    请问这里的message如何修改成msg或其它键值呢?

    1. 自己定义一个中间件即可,不用示例的。

  3. 希望tag中能增加个field来表示字段的意思,去替换xxx字段更加好,另外最后返回那个字段的消息提示,例如这样: {"filed": "username", "msg": "账号不能为空"}, 这样就更好结合前端表单提示,这样的体验更好些

  4. 真的非常好用,但是能不能把这个包独立出来呢~,而非绑定到框架中~,让非goframe框架的也可以直接引用,只想用这个数据校验的时候却必须引入gf框架~,这个有点不是很友好,而且以后gf的v3,v4也可以直接用呢,而非

    github.com/gogf/gf/v4/util/gvalid
    github.com/gogf/gf/v5/util/gvalid

    必须绑定到框架中

    如果能这样直接引用就更好了:github.com/gogf/gvalid

    1. 可以独立使用的,go是按需编译。gf主库的依赖已经尽量地减少。绝大部分额外功能已经独立到contrib目录下。