Browse Source

独立验证器

master
kuangweijian 3 years ago
parent
commit
ad941f5887
  1. 2
      examples/user-login.php
  2. 15
      src/MyValidator.php
  3. 27
      src/UserInput.php

2
examples/user-login.php

@ -13,7 +13,7 @@
];
$model->setAttributes($inputDate);
//输出
// 输出
if($model->validate()){
echo "login succ".PHP_EOL;
}else{

15
src/MyValidator.php

@ -0,0 +1,15 @@
<?php
namespace Wiggins\MyProject;
use yii\validators\Validator;
class MyValidator extends Validator
{
public function validateAttribute($model, $attribute)
{
if(!in_array($model->$attribute,['kuangweijian'])){
$this->addError($model, $attribute,"属性中必须含有值'kuangweijian'");
}
}
}
?>

27
src/UserInput.php

@ -2,6 +2,7 @@
namespace Wiggins\MyProject;
use yii\base\Model;
use yii\validators\Validator;
/**
* UserInput类是用于用户登录或注册场景中输入数据
@ -62,19 +63,33 @@
public function rules()
{
return[
//用户名长度
['name','string','length'=>[3,20],'message'=>'用户名长度为3至20个字符'],
//邮件格式
['email','email'],
//密码格式
['password','string','length'=>[3,10]],
//确认密码与密码需一直
['pwdConfirm','compare','compareAttribute'=>'password','message'=>'两次密码必须一致'],
//注册场景
[['name','email','password','pwdConfirm'],'required','on'=>'register'],
//登录场景
[['name','password'],'required','on'=>'login'],
[['name','email'],'Wiggins\MyProject\MyValidator']
];
}
}
/**
* MyValidator类用于独立验证器
* @author kuangweijian <867034892@qq.com>
* @since 1.0.0
*/
class MyValidator extends Validator
{
public function validateAttribute($model, $attribute)
{
$blackList='kuangweijian';
$ret = in_array($blackList, $model->attributes);
if($ret){
$this->addError($model, $attribute,"{$blackList}属于黑名单人员");
}
}
}
?>
Loading…
Cancel
Save