企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 自动验证 依赖核心扩展类 verify.class.php 需要建立用户自定义模型文件 例如: home/model/ 目录下建立 user.class.php 继承 verify 类,所有规则都写在 $roles 数组中 $roles 数组的键名(username email age)是要验证的字段名,键值数组是验证规则 规则当中最后一个参数 'add' 和 'both' 是验证时机 <?php namespace m; use \ext\verify; class user extends verify{ protected $returnMod = 2; //设置返回时机 protected $roles = [ 'username'=>[ //验证 username 字段 'unique'=>['该用户已被注册!','add'], //验证 unique 规则 'length'=>[3,18,'用户名长度必须在3-18之间','both'], //验证 length 规则 'notnull'=>['username必填!'], //验证 notnull 规则 'must'=>true, //不论提交的数据是否存在该字段都进行验证 ], 'email'=>[ //验证 email 字段 'email'=>['电子邮件格式不正确!','both'], //验证email规则 ], 'age'=>[ //验证 age 字段 'myfun'=>['checkage','年龄不符合要求'], //使用自定义函数 checkage()进行验证 ], //...更多字段的验证规则 ]; protected function checkage($value,$key){ //自定义的验证函数 if($value < 1 || $value > 100) return false; else return true; } /*以下根据需求写自定义操作*/ public function addUser(){ //自定义的 addUser 操作 $result = $this->add($_POST); if($result) return true; else return false; } //... 其它自定义操作 } ## 规则说明 非空: 'notnull' => ['提示信息','验证时机'], 唯一: 'unique' => ['提示信息','验证时机'], 邮箱: 'email' => ['提示信息','验证时机'], 数字: 'number' => ['提示信息','验证时机'], 长度: 'length' => [1,10,'提示信息','验证时机'], //长度范围是一个参数时验证长度相等, 区间: 'between' => [1,10,'提示信息','验证时机'], 相等: 'eq' => ['要比较的另一字段','提示信息','验证时机'], 正则: 'preg' => ['正则表达式','提示信息','验证时机'], 必须: 'must' => true/false //为真时则不管数据是否有此字段都要验证,默认false(有此字段时才验证) ## 验证时机 **默认为 'both'** 'add' //添加数据时验证 'update' //更新数据时验证 'both' //添加和更新时都验证 ## 返回时机 **默认为 某个字段验证失败就返回** 模型中定义成员变量:protected $returnMod = 1; $returnMod = 0 //全部验证完毕之后返回 $returnMod = 1 //某个字段验证失败返回(默认) $returnMod = 2 //某一条规则验证失败返回 >[danger] 注意,要实现自动验证只有下面三种方法 $m = M('user'); $m->add($add); //添加数据 add()方法 $m->save($save); //更新数据 save()方法 $m->create($_POST); //主动验证,参数为空时默认是$_POST