thinkphp5.1学习过程十二——验证器与静态代理控制器验证独立验证
<?phpnamespace appindexcontroller;
//use appvalidateUser;
use appindexfacadeUser;
use thinkController;
class Demo9 extends Controller
{
//1、验证器:使用Validate类中的rule属性
public function test1()
{
//要验证的数据
$data=[
"name"=>"yht12345",
"email"=>"45501@qq.com",
"password"=>"123456",
"mobile"=>"15988889999"
];
//验证器是一个类
// $validate=new User();
// if(!$validate->check($data)){
// return $validate->getError();
// }
//使用当前验证器的静态代理
if(!User::check($data)){
return User::getError();
}
return "验证通过";
}
//调用控制器中的validate方法进行验证:使用用户自定义的验证器public function test2()
{
//$this->validate($data,$validate);返回验证结果
//要验证数据
$data=[
"name"=>"yht12345",
"email"=>"45501@qq.com",
"password"=>"123456",
"mobile"=>"15988889999"
];
//验证规则
$validate="appvalidateUser";
$res=$this->validate($data,$validate);
if($res !== true){
return $res;
}
return "验证通过";
}
}
<?php//用户信息表的字段验证器类
namespace appvalidate;
use thinkValidate;
class User extends Validate
{
//
protected $rule=[
"name|姓名"=>[
"require",
"max"=>20,
"min"=>5,
],
"email|邮件"=>[
"require",
"email",
],
"password|密码"=>[
"require",
"max"=>12,
"min"=>3,
"alphaNum",
],
"mobile|手机"=>[
"require",
"mobile",
],
];
}
<?phpnamespace appindexfacade;
use thinkFacade;
class User extends Facade
{
protected static function getFacadeClass()
{
return "appvalidateUser";
}
}
利用thinkphp里面的validate类进行验证
/*** 验证器总结
* 1.验证器是一个自定义的类,必须继承于框架的验证类thinkValidate.php
* 2.验证器可以创建在应用application目录下的任何一个可以访问的目录下面
* 这个访问是指控制器可以访问,并不是指外部的URL访问,只需要指定正确的命名空间
* 3.验证器其实就是完成框架的thinkValidate类中的属性protected $rule=[]初始化
* 4、在控制器中直接实例代调用check()完成验证
* 5、还可以创建一个自定义的静态代理,来统一验证方法的调用方式
*/
//2.独立验证:使用的是验证器类thinkValidate中的rule方法
//rule()方法实际上就是完成给当前的protected $rule=[]初始化
//独立就是不依赖:不依赖于用户自定义的验证器类:appvalidateUser.php
public function test3()
{
//验证规则
$rule=[
"name|姓名"=>[
"require",
"max"=>20,
"min"=>5,
],
"email|邮件"=>[
"require",
"email",
],
"password|密码"=>[
"require",
"max"=>12,
"min"=>3,
"alphaNum",
],
"mobile|手机"=>[
"require",
"mobile",
],
];
//添加字段的验证规则:初始化rule属性
Validate::rule($rule);
//要验证数据
$data = [
"name" => "yht12345",
"email" => "45501@qq.com",
"password" => "123456",
"mobile" => "15988889999"
];
//如果验证不通过,直接输出错误信息
if(!Validate::check($data)){
return Validate::getError();
}
return "验证通过";
}
以上是 thinkphp5.1学习过程十二——验证器与静态代理控制器验证独立验证 的全部内容, 来源链接: utcz.com/z/511010.html