驗證
驗證器
每個驗證需要一個繼承自think\Validate的驗證類,類里面的$rule代表了驗證的規則
<?php
namespace app\validate;
use think\Validate;
class User extends Validate
{
//當前驗證的規則
protected $rule=[
'name|姓名'=>[ //姓名是name的別名,用於輸出錯誤信息
'require', //必填
'max'=>20, //最大長度
'min'=>5, //最小長度
],
'email'=>[
'require',
'email'=>'email',//必須是email格式
],
'password'=>[
'require',
'max'=>20,
'min'=>8,
'alphaNum'//必須是字母或數字
]
];
}
進行測試
<?php
namespace app\index\controller;
use app\facade\Validatefacade;
use app\validate\User;
use think\Controller;
class Validatetest extends Controller
{
//驗證器,是個類Validate,
public function test1()
{
//要驗證的數據
$data = [
'name' => 'xiaxuu',
'email' => '2112343@qq.com',
'password' => 'fdsfsafd'
];
//驗證器是個類
$validate = new User;//實例化驗證類
if (!$validate->check($data)) {//檢驗驗證
return $validate->getError();//如果姓名為空就輸出’姓名不能為空‘
}
return '驗證成功';
}
}
獨立驗證
//獨立驗證 使用think\validate里的rule方法,就是對$rule的初始化,使用內置的Validate的靜態代理
public function test4(){
$rule=[
'name|姓名'=>[ //姓名是name的別名,用於輸出錯誤信息
'require', //必填
'max'=>20, //最大長度
'min'=>5, //最小長度
],
'email'=>[
'require',
'email'=>'email',//必須是email格式
],
'password'=>[
'require',
'max'=>20,
'min'=>8,
'alphaNum'//必須是字母或數字
]
];
$data = [
'name' => 'xiaxuu',
'email' => '2112343@qq.com',
'password' => 'fdsfsafd'
];
Validate::rule($rule);//添加了驗證規則
if(!Validate::check($data)){
return Validate::getError();
}
return '驗證通過';
}