企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 数据验证 [TOC] ### 基本语法 ~~~ 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 ] ] ); ~~~ ### 获取错误信息 错误信息会记录到模型对象的 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'] chinese 内容为中文或字母时验证通过 identity 身份证 exists 存在这个字段时验证失败 captcha 验证码 ~~~ ### 增加规则 ~~~ Validate::extend('checkUser',function($field,$value,$params){ //返回值为true时验证通过 return true; }); ~~~ ### 设置规则 ~~~ /** * 设置验证规则 * @param array $data [description] */ public function setRule(array $data = []) ~~~ ### 设置数据 ~~~ // 设置验证数据 public function data(array $data = []) ~~~ ### 验证数据 如果参数为空需要之前调用过设置数据和设置规则 ~~~ /** * 进行验证 * @param array $validate [验证规则] * @param array $validate [验证数据] * @return [type] [description] */ public function make(array $validate = [], array $data = []) ~~~