验证类:
<?php
namespace app\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name|姓名' => [
'require' => 'require',
'min' => 5,
'max' => 20
],
'email|邮箱' => [
'require',
'email' => 'email'
],
'password|密码' => [
'require',
'min' => 3,
'max' => 20,
'alphaNum'
],
'mobile|手机' => [
'require',
'mobile'
]
];
}
控制器中写法
<?php
namespace app\index\controller;
use think\Controller;
// use app\validate\User; //常规写法
use app\facade\User;//使用静态马甲写法
// use think\Validate;//常规写法
use think\facade\Validate;
class Demo9 extends Controller{
public function test1(){
$data=[
'name'=>'Peter',
'email'=>'111@qq.com',
'password'=>'123abc',
'mobile'=>'18709018976'
];
// $validate=new User;
// if(!$validate->check($data)){
// return $validate->getError();
// }
// return '验证通过';
//使用当前验证器的静态代理
if(!User::check($data)){
return User::getError();
}
return '验证通过';
}
/**
* 调用控制器中的validate方法进行验证:使用用户自定义的验证器
*/
public function test2(){
// $this->validata($data,$validate);
$data=[
'name'=>'Peter',
'email'=>'111@qq.com',
'password'=>'123456',
'mobile'=>'18709018976'
];
$validate='app\validate\User';
$res=$this->validate($data,$validate);
if(true!==$res){
return $res;
}
return '验证成功';
}
/**
* 验证器总结
* 1.验证器是一个自定义的类,必须继承框架的验证类think\Validate.php
* 2.验证器可以创建在application目录下的任何一个可以访问的(控制器可以访问,不是指外表URL访问
* ,只需要指定正确的命名空间即可)目录下
* 3.验证器就是完成框架的think\Validate.php类中protected $rule=[]初始化
* 4.在控制器中直接实例化,调用check()完成验证
* 5.也可以创建一个自定义的静态代理来统一验证方法的调用方式
* */
/**
* 独立验证:使用的是验证器类think\Validate中的rule()方法,不依赖用户自定义的验证器类
*rule()方法实际上就是完成给当前类的protected $rule=[]初始化
*/
public function test3(){
$rule = [
'name|姓名' => [
'require' => 'require',
'min' => 5,
'max' => 20
],
'email|邮箱' => [
'require',
'email' => 'email'
],
'password|密码' => [
'require',
'min' => 3,
'max' => 20,
'alphaNum'
],
'mobile|手机' => [
'require',
'mobile'
]
];
$data=[
'name'=>'Peter',
'email'=>'111@qq.com',
'password'=>'123333##3456',
'mobile'=>'18709018976'
];
Validate::rule($rule);
if(!Validate::check($data)){
return Validate::getError();
}
return '验证成功';
}
}