如果需要验证的内容不多建议在控制器的方法里进行验证,
如果需要验证的内容比较多可以在控制器的前置方法里进行验证;
```
public function test( $cat_id, $name,$age,File $file) {
validate($name,'名称')->required()->length(4,10);
validate($age,'年龄')->min(14)->required();
validate($cat_id,'分组id')->between(1,100);
validate($file)->msg('文件不可为空')->fileSize(1000*1024*1024);
validateParam("id",'id')->required();
}
```
验证方式
```
/**
* 检查参数
*
* @param string $name 参数
* @param string $as_name 显示名称 默认空
* @param bool $throw 是否抛异常 默认 true
*
* @return \rap\web\validate\Validate
*/
function validate($name, $as_name='', $throw = true) {
return \rap\web\validate\Validate::param($name, $as_name, $throw);
}
```
```
/**
* 检查 request 里的参数
*
* @param string $name request 中获取的参数名称
* @param string $as_name 显示名称 默认空
* @param bool $throw 是否抛异常 默认 true
*
* @return \rap\web\validate\Validate
*/
function validateParam($name, $as_name = '', $throw = true) {
```
默认遇到任何验证不通过,都会抛出异常
如果不想抛出异常指向验证结果
```
$vali = validate($name,'名称',false)->required()->length(4,10);
if(!$vali->isValidate){
$msg = $vali->msg;
}
```
#### msg :验证不通过是显示的错误消息 没有这个方法的话会走默认消息
*****
默认 msg 是可以走 lang 多语言下的validate 下的配置的
```
validate($file)->msg('文件不可为空')->fileSize(1000*1024*1024);
```
#### validateRole:表示验证权限,如果没有通过默认会报你没有权限
*****
```
validateRole($name,'name') 相当于 $validate($name,'name')->msg('role')
```
### 所有验证方法
*****
| 方法 |含义 |
|---|---|
| required | 必须 |
| isTrue | 结果是 true |
| accepted | 接受 ['1', 'on', 'yes']|
| isDate | 是否是一个有效日期|
| isAlpha | 只允许字母|
| isAlphaNum |只允许字母和数字|
| isAlphaDash | 只允许字母、数字和下划线 破折号|
| isChs | 只允许中文|
| isChsAlpha |只允许中文字母|
| isChsAlphaNum |只允许中文字母数子|
| isChsDash |只允许中文、字母、数字和下划线_及破折号-|
| activeUrl |检查有效可访问的域名或ip|
| url |有效的网址|
| float |检查浮点数|
| number |检查数字|
| integer |检查整数|
| email |检查邮箱|
| boolean |检查boolean|
| isArray |检查数组|
| file |检查文件|
| fileExt |检查文件后缀|
| fileMime |检查文件类型|
| fileSize |检查文件大小|
| image |检查是否图片|
| confirm |验证是否和某个字段的值一致|
| different |验证是否和某个字段的值不同|
| egt |验证是否大于等于|
| gt |验证是否大于|
| elt |验证是否小于等于|
| lt |验证是否小于|
| eq |验证是否等于|
| dateFormat | 验证时间格式|
| requireIfEq | 当两个值相等时必须|
| requireWhen | 当回调为真是必须|
| requireWith | 当另一个值存在时必须|
| in | 检查在范围内|
| notIn | 检查不在范围内|
| min | 最小值|
| max | 最大值|
| between | 在两值之间|
| notBetween | 不在两值之间|
| length | 长度范围|
| regex | 符合正则|
| regex | 符合正则|
| unique | 检查数据库是唯一值|
| allowIp | 允许的ip|
| denyIp | 禁止的ip|
| before | 验证日期在_前|
| after | 验证日期在_后|
| expire | 验证有效期|
特殊说明
unique 检查数据库是唯一值
如 book 表的 code 为唯一值验证方法
> validate($code,'识别码')->required()->unique(Book::class,'code');
>[danger] 可能有部分方法没有经过完整测试,大家写的过程中还是需要自己试下的,
- 序言
- 开始
- 安装 RapPhp
- 应用目录
- 配置文件
- 入口类
- MVC架构
- 控制器基础
- 前置方法
- 拦截器
- 动态路由
- Request和Response
- Cookie和Session
- 模板引擎
- 请求缓存
- 流程图
- 数据库
- 基础使用
- 查询语法
- 查询操作
- where
- order
- limit
- lock
- fields
- join
- distinct
- having
- group
- force
- 查询方法
- 多数据源
- 数据库类型
- Record模型
- 使用Record
- 增删改
- 查找方法
- 数据类型
- 基本类型
- JSON 数据类型
- time
- date
- attach
- const
- 迭代操作
- record 更多方法
- 注入与转json
- 多级缓存
- 多数据源
- 模型生成
- 回调事件
- IOC控制反转
- Ioc基础概念
- 依赖注入
- Scope作用域
- 构造器
- 循环依赖
- AOP面向切面
- AOP使用
- 切面
- AopBuild
- 生成 aop 文件
- 事件勾子
- 执行循序
- Swoole
- Http服务器
- 用户进程
- Context上下文(重要)
- 协程
- 特色功能
- 限流器
- 连接池
- 数据库连接池
- Redis 连接池
- 通用连接池
- Rpc 远程调用
- Rpc服务提供方
- Rpc客户端
- 熔断器与服务降级
- Redis 分布式锁
- 其他功能
- 缓存
- redis
- 文件存储
- 存储简介
- 本地存储
- OSS存储
- 配置
- 日志
- 验证器
- FileUtil
- 数组Util
- Http工具
- 多语言
- 命令行
- 使用命令行
- 生成模型文件
- AOP动态文件生成
- swoole_http服务器
- 自定义命令行
- 异常与调试
- 异常抛出
- 异常处理
- 部署
- URL重写
- DOCKER 镜像(重要)
- 附录
- 回调事件
- 开发规范
- Swoole开发注意点
- 热点行更新排队机制
