## 自动验证
Validate组件提供了方便的验证机制,快速实现验证业务。
其他产品也可以使用该组件,请登录 [GITHUB](https://github.com/houdunwang/validate) 查看源代码与说明文档。
[TOC]
## 配置
验证响应由配置文件 system/config/validate.php 中的app 配置段决定。
#### redirect
直接跳转,会分配变量$errors到前台,开发者可以通过模板标签读取错误内容。
#### show
直接显示错误信息,不需要开发者处理
#### default
由开发者自行处理,需要使用 Validate::fail()自行进行判断。
## 基本使用
#### 基本语法
```
array(字段名,验证方法,错误信息,验证条件)
验证条件 (可选):
1 有字段时
2 值不为空时
3 必须处理 (默认)
4 值为空时
5 不存在字段时处理
```
#### 验证数据
默认情况下验证直接操作POST数据,我们可以在执行make()方法时传递第二个参数设置验证数据。
```
$data = ['phone'=>'333'];
$res = Validate::make( [
[ 'phone', 'phone', '手机号格式错误', Validate::MUST_VALIDATE ]
] ,$data);
if($res===false){
print_r(Validate::getError());
}
```
#### 闭包验证
```
$data = ['num' => 300];
Validate::make([
['domain', function ($value) {
return $value > 100;
}, '域名不能为空',Validate::MUST_VALIDATE ]
],$data);
//闭包返回 true 时验证通过
```
#### 验证表字段唯一性
```
$data = ['qq' => '2300071698','id'=>1];
Validate::make( [
[ 'qq', 'unique:user,id', 'qq已经存在', Validate::MUST_VALIDATE ]
// user :表名 uid:表主键
],$data );
```
#### 验证表单验证码
```
Validate::make( [
[ 'code', 'captcha', '验证码输入错误', Validate::MUST_VALIDATE ]
] );
```
## 验证判断
需要响应方式为default值时有效。
```
if(Validate::fail()){
echo '验证失败';
};
```
## 获取错误信息
错误信息会记录到模型对象的 error 属性中,使用 getError() 方法获取但需要设置处理方式为 default
```
Validate::getError();
```
## 系统规则
```
required 必须输入
isnull 字段为空时验证失败
email 邮箱
http 网址
tel 固定电话
phone 手机
zipCode 邮政编码
num 数字范围 如:num:20,60
range 长度范围(位数)如 : range:5,20
maxlen 最大长度如:maxlen:10
minlen 最少长度如:minlen:10
regexp 正则如:regexp:/^\d{5,20}$/
confirm 两个字段值比对如:confirm:password2
china 内容为中文或字母时验证通过
identity 身份证
unique 数据表值唯一如:unique:news,id (id为表主键)
exists 存在这个字段时验证失败
captcha 验证码
```
## 增加规则
```
Validate::extend('checkUser',function($field,$value,$params){
//返回值为true时验证通过
return true;
});
```
第一个参数为验证规则名称,第二参数闭包函数。
## 显示错误
#### redirect 模式
当配置项的错误处理设置为 redirect 时,系统会员向模板中分配包含错误信息的变量 $errors,所以可以要模板中使用以下方式显示错误。
```
<if !empty($errors)>
<if value="$errors">
<foreach from="$errors" value="$e">
<li>{{$e}}</li>
</foreach>
</if>
```
#### show 模式
当配置项的错误处理设置为 show 时,系统将使用 config/validate.php 配置文件中的 template 配置项指定的模板显示错误。
- 文档已经迁移到后盾人
- 介绍
- 框架特性
- 开发规范
- 许可协议
- 作者向军
- 安装框架
- 更新框架
- 基础
- 入口文件
- 应用配置
- 优雅链接
- 目录结构
- 系统常量
- 自动加载
- 应用密钥
- 系统函数
- CSRF保护
- 依赖注入
- 跨域访问
- 配置
- 配置文件
- 基本功能
- 扩展配置
- c 函数
- 控制器
- 定义声明
- 基本使用
- 相关函数
- 响应消息
- 路由
- 基础知识
- 基础路由
- 路由参数
- 参数检测
- 依赖注入
- 控制器
- 分组路由
- RESTful
- 别名路由
- 数据
- 配置相关
- 核心操作
- 查询构造器
- 日志记录
- 分页处理
- 事务处理
- 函数相关
- 数据库
- 数据迁移
- 数据填充
- 模型
- 定义模型
- 模型动作
- 模型验证
- 自动完成
- 自动过滤
- 字段保护
- 数据填充
- 多表关联
- 分页处理
- 仓库
- 数据仓库
- 查询规则
- 视图
- 基础知识
- 模板配置
- 模板文件
- 分配数据
- 系统标签
- 扩展标签
- 缓存模板
- 模板继承
- 视图函数
- widget
- vue组件
- 中间件
- 中间件
- 缓存
- 基本操作
- 文件缓存
- 数据表缓存
- 服务
- 服务容器
- 定制服务
- 相关函数
- 请求
- 基本使用
- 请求扩展
- 测试
- 基础知识
- 基本使用
- HTTP测试
- 调试
- 调试模式
- 日志管理
- 组件
- 多语言
- 响应处理
- Cookie
- Session
- 验证码
- XML
- 自动验证
- 文件处理
- 压缩解压
- RBAC
- 数组增强
- 分页管理
- 图像处理
- 生成静态
- 加密解密
- 字符串
- 数据集合
- 工具服务
- 目录操作
- 邮件发送
- CURL
- QQ登录
- 数据备份
- 购物车
- 日志处理
- 命令组件
- 二维码
- 后盾云
- 日期处理
- 阿里
- 支付宝
- 阿里云直播
- 阿里云短信
- 阿里云邮件
- 阿里云OSS
- SOCKET
- 启动与关闭
- 前端
- 微信