1

我创建了一个包含一些实体(比如姓名、地址等)的表单。我已经在模型类中定义了验证规则。客户端验证按要求完美运行。现在我需要创建自定义验证规则。为此,参考http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/#hh0,我在我的模型中创建了一个名为 valid_number() 的方法,并定义了一个简单的空值检查(我知道有用于验证空值、电子邮件、密码等的内置规则。这里我演示了一种简单的验证方法,实际上我正计划进行一些自定义验证)。请参考下面的代码。请让我知道我做错了什么。

//模型

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>
4

3 回答 3

3

CModel::addError应该是$this->addError

于 2013-01-23T09:26:11.610 回答
0
<?php 
$this->addError($attribute, 'Your error message');
?>
于 2015-10-26T05:56:55.477 回答
0

你为什么要调用静态函数CModel::addError

您可以只调用addError该对象并且它可以工作:

public function valid_number($attribute, $params) {
    if ($this->$attribute == '' ) {
        $this->addError($attribute, 'Number is null');
    }
}
于 2016-08-06T15:18:25.573 回答