我创建了一个包含一些实体的表单(比如姓名,地址等)。我已经在模型类中定义了验证规则。客户端验证可以根据需要完美运行。现在我需要创建自定义验证规则。为此,在http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/#hh0的引用中,我在我的模型中创建了一个名为valid_number()的方法,并定义了一个简单的空检查(我知道有用于验证null,电子邮件,密码等的内置规则。在这里,我演示了一种简单的验证方法,实际上我计划进行一些自定义验证)。请参考下面的代码。请让我知道我做错了什么。
//模型
class Employee extends CActiveRecord{
public $number;
public function rules(){
return array(
array('number','valid_number'),
);
}
public function valid_number($attribute,$params){
if($this->$attribute == '' ){
CModel::addError($attribute, 'Number is null');
}
}
//视图
</fieldset>
<?php echo $form->textFieldRow($model, 'number'); ?>
</fieldset>
答案 0 :(得分:3)
CModel::addError
应为$this->addError
。
答案 1 :(得分:0)
<?php
$this->addError($attribute, 'Your error message');
?>
答案 2 :(得分:0)
为什么要调用静态函数CModel::addError
?
您只需调用该对象的addError
即可:
public function valid_number($attribute, $params) {
if ($this->$attribute == '' ) {
$this->addError($attribute, 'Number is null');
}
}