yii2 class 验证器不存在
yii2 class validator does not exist
Class 扩展验证器。
namespace app\myclass;
use yii\validators\Validator;
class telefoneValidator extends Validator
{
public function validateAttribute($model, $attribute) {
parent::validateAttribute($model, $attribute);
if (!preg_match("^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$", $model->$attribute)) {
$this->addError($model, $attribute, 'error');
}
}
}
Class app\models\user 规则验证/
namespace app\models;
use Yii;
use app\myclass\telefoneValidator;
public function rules()
{
return [
['telefone', 'telefoneValidator']
];
}
当您开始收到错误异常 'ReflectionException' 消息时:
Class telefoneValidator does not exist
此声明适用于声明为相同 class 方法的内联验证器(例如,当您添加 public function validateTelefone($attribute, $params) { ... }
和 'validateTelephone'
作为验证规则的第二个参数时)。
对于存储在单独 classes 中的外部验证器,您应该提供带有命名空间的完整 class 名称,如下所示:
use app\myclass\telefoneValidator;
...
['telefone', telefoneValidator::className()],
或
['telefone', 'app\myclass\telefoneValidator'],
附加说明:我建议将验证器名称更改为 TelefoneValidator
,因为它违反了框架 classes 命名约定。
Class 扩展验证器。
namespace app\myclass;
use yii\validators\Validator;
class telefoneValidator extends Validator
{
public function validateAttribute($model, $attribute) {
parent::validateAttribute($model, $attribute);
if (!preg_match("^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$", $model->$attribute)) {
$this->addError($model, $attribute, 'error');
}
}
}
Class app\models\user 规则验证/
namespace app\models;
use Yii;
use app\myclass\telefoneValidator;
public function rules()
{
return [
['telefone', 'telefoneValidator']
];
}
当您开始收到错误异常 'ReflectionException' 消息时:
Class telefoneValidator does not exist
此声明适用于声明为相同 class 方法的内联验证器(例如,当您添加 public function validateTelefone($attribute, $params) { ... }
和 'validateTelephone'
作为验证规则的第二个参数时)。
对于存储在单独 classes 中的外部验证器,您应该提供带有命名空间的完整 class 名称,如下所示:
use app\myclass\telefoneValidator;
...
['telefone', telefoneValidator::className()],
或
['telefone', 'app\myclass\telefoneValidator'],
附加说明:我建议将验证器名称更改为 TelefoneValidator
,因为它违反了框架 classes 命名约定。