ThinkPHP5.1验证器
一、验证器定义
1、验证器的使用 必须先定义
php think make:validate User
2、自动在应用目录下生成一个validate文件夹 并生成User.php类
class User extends Validate
3、自动生成2个属性 $rule 表示定义规则 $message表示错误提示信息
protected $urle = [ 'name'=>'require|max:20',//不得为空 不得大于20 'price'=> 'number|between:1,100',//必须是数值 1-100之间 'email'=>'email' //邮箱格式 ]; protected $message = [ 'name.require' => '名称必须', 'name.max' => '名称最多不能超过25个字符', 'age.number' => '年龄必须是数字', 'age.between' => '年龄必须在1~120之间', 'email' => '邮箱格式错误', ];
4、如果不设置$message 定义的话,将提示默认的错误信息
5、验证器定义好之后,需要进行调用测试,创建一个控制器
需要继承控制器 use think\Controller;
$data =[ 'name'=>'张三', 'price'=>90, 'email'=>'xxx@qq.com' ]; $validate = new \app\validate\User(); if(!$validate->check($data)){ dump($validate->getError()); }
6、控制器类还提供一个更加方便验证的方法,可以更容易进行编码;
$result =$this->validate([ 'name'=>'张三', 'price'=>90, 'email'=>'xxx@qq.com' ],'\app\validate\User'); if($result !== true){ dump($result); }
一般情况下,如果有数据验证不符合规则,则立刻停止验证进行返回。
7、如果需要验证所有的错误信息,需要手动开启批量验证
protected $batchValidate = true;
8、默认情况下,验证失败后不会抛出异常,需要手动设置
protected $failException = true;