如果需要验证的内容不多建议在控制器的方法里进行验证, 如果需要验证的内容比较多可以在控制器的前置方法里进行验证; ``` 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] 可能有部分方法没有经过完整测试,大家写的过程中还是需要自己试下的,