涩蹈讹茨空噶硕邦淮钳莱帮牵
验证器类文件位于D:\phpStudy\PHPTutorial\WWW\tp5\thinkphp\library\think\Validate.php
其中最重要的属性和方法为:
创建验证器
验证器可以创建在应用(application)目录下,也可以创建在模块(如index)下
在application目录下创建:
<?php //用户信息表的字段验证类 namespace app\validate; use think\Validate; class User extends Validate//必须继承 { // 当前验证的规则(复制Validate的rule属性,然后重写) protected $rule = [ 'name'=>'require|length:4,15', 'sex'=>'in:0,1', 'age'=>'require|between:18,60', 'salary'=>'require|gt:1500' ]; }
创建Demo控制器:
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'men' ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改Demo控制器代码:
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'age'=>2 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器代码:
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>5, 'age'=>28 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器代码:
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>500 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器代码:
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>3000 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
以上,所有定义的条件都得到验证,但是错误提示信息是中英文混合。
修改验证器:
<?php //用户信息表的字段验证类 namespace app\validate; use think\Validate; class User extends Validate//必须继承 { // 当前验证的规则(复制Validate的rule属性,然后重写) protected $rule = [ 'name'=>'require|length:4,15', 'sex'=>'in:0,1', 'age'=>'require|between:18,60', 'salary'=>'require|gt:1500' ]; //错误信息 protected $message=[ 'name.require'=>'员工姓名不能为空', 'name.length'=>'姓名长度必须在 4-15', 'sex.in'=>'性别必须是男或者女', 'age.require'=>'年龄不能为空', 'age.between'=>'年龄必须在 18-60', 'salary.require'=>'工资必须输入', 'salary.gt'=>'工资必须大于 1500' ]; }
修改控制器Demo
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人', 'sex'=>1, 'age'=>28, 'salary'=>3000 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器Demo
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>9, 'age'=>28, 'salary'=>3000 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器Demo
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>2, 'salary'=>3000 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器:
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>500 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
修改控制器
<?php namespace app\index\controller; use think\Controller; use app\validate\User;//引入自定义的验证器 class Demo extends Controller { //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>2800 ]; //验证器是一个类 $validate=new User; //直接调用check()进行验证 if(!$validate->check($data))//如果验证失败,取反,让if条件成立,输出错误信息 { return $validate->getError(); } return "验证通过"; } }
执行:
简化
修改控制器
验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证
$this->validate($data,$rule,$mess)
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { // 验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证 //$this->validate($data,$rule,$mess) //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>2800 ]; $rule='app\validate\User';//验证规则,注意:必须是单引号 $res=$this->validate($data,$rule); if($res!==true)//注意不等于的写法是!== { return $res; } return "验证通过"; } }
执行:
修改数据:
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { // 验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证 //$this->validate($data,$rule,$mess) //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人', 'sex'=>1, 'age'=>28, 'salary'=>3000 ]; $rule='app\validate\User';//验证规则,注意:必须是单引号 $res=$this->validate($data,$rule); if($res!==true)//注意不等于的写法是!== { return $res; } return "验证通过"; } }
执行:
修改数据:
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { // 验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证 //$this->validate($data,$rule,$mess) //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>11, 'age'=>28, 'salary'=>3000 ]; $rule='app\validate\User';//验证规则,注意:必须是单引号 $res=$this->validate($data,$rule); if($res!==true)//注意不等于的写法是!== { return $res; } return "验证通过"; } }
执行:
修改数据
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { // 验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证 //$this->validate($data,$rule,$mess) //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>8, 'salary'=>3000 ]; $rule='app\validate\User';//验证规则,注意:必须是单引号 $res=$this->validate($data,$rule); if($res!==true)//注意不等于的写法是!== { return $res; } return "验证通过"; } }
执行
修改数据
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { // 验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证 //$this->validate($data,$rule,$mess) //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>300 ]; $rule='app\validate\User';//验证规则,注意:必须是单引号 $res=$this->validate($data,$rule); if($res!==true)//注意不等于的写法是!== { return $res; } return "验证通过"; } }
执行:
修改数据:
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { // 验证器的简化,直接使用系统的控制器 Controller 下的 validate()方法来验证 //$this->validate($data,$rule,$mess) //1.验证类:使用的主要是Validate下的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'萌面人资料铺', 'sex'=>1, 'age'=>28, 'salary'=>3300 ]; $rule='app\validate\User';//验证规则,注意:必须是单引号 $res=$this->validate($data,$rule); if($res!==true)//注意不等于的写法是!== { return $res; } return "验证通过"; } }
执行:
如果数据很简单,则可以不用验证器,直接在当前的控制器中写:
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { public function test1() { $data=['age'=>20]; $rule=['age'=>'between:10,50']; $mess=['age.between'=>'年龄必须在 10-50']; $res=$this->validate($data,$rule,$mess); if($res!==true) { return $res; } return '验证通过!'; } }
执行:
修改数据
<?php namespace app\index\controller; use think\Controller; class Demo extends Controller { public function test1() { $data=['age'=>2]; $rule=['age'=>'between:10,50']; $mess=['age.between'=>'年龄必须在 10-50']; $res=$this->validate($data,$rule,$mess); if($res!==true) { return $res; } return '验证通过!'; } }
执行:
瓢颓存吮炕堤颊烤匡淡我碎腻