以managerService为例
创建一个validate目录下的class.php文件,命名为manager
在managerService类里使用命名空间
use app\admin\validate\Manager as ManagerValidate;
在某个方法里创建一个验证器对象
$validate=new ManagerValidate();
判断参数是否为空
- 设置需要判断的参数key和参数名称
- 执行检查(传入整个参数数组)
$result=$validate->setEmptyCheckField([
"nickname|昵称","email|邮箱"
])->checkEmpty($data); //$data=["nickname"=>"我是管理员","email"=>"28984656@qq.com"]
if(!$result){
return $validate->getError();
}
一般类型判断
判断类型 | 规则名 | 判断失败文字描述 |
---|---|---|
严格密码校验 | pwd | 密码长度必须在6~25之间 密码英文字母、数字、符号至少要用其中两种 |
简单密码校验 | simple_pwd | 密码最小长度是6位 密码最大长度是25位 密码只能是数字、英文字母 |
银行卡号校验 | bank_card_no | 银行卡号位数有误 银行卡格式错误 |
邮箱校验 | 邮箱格式错误 | |
手机号校验 | tel | 手机号码有误 |
账号校验 | account | 账号必须5个字符以上 账号最多不能超过25个字符 名称中不能带有除数字和英文字母的其他字符 |
身份证校验 | id_card | 身份证输入有误 |
验证方法
$validate=new ManagerValidate();
$result=$validate->check([
"email"=>$data['email'],
"simple_pwd"=>$data['pwd']
]); //只需传入要判断的规则名和值即可
if(!$result){
return $validate->getError();
}
如果表单传入了两个需要判断同一规则的参数,比如email1和email2
需要在app\admin\validate\Manager验证器的构造函数加上
public function __construct() {
$this->rule['email2']=$this->rule['email'];
}
在service进行判断
$validate=new ManagerValidate();
$result=$validate->check([
"email"=>$data['email1'],
"email2"=>$data['email2']
]); //只需传入要判断的规则名和值即可
if(!$result){
return $validate->getError();
}
同理,如果需要覆盖或者新建文字说明,都可在app\admin\validate\Manager验证器的构造函数进行覆盖或新建规则
场景
自己去看