如何在yii中为验证规则创建自定义函数?

时间:2013-01-23 09:13:31

标签: php yii validation

我创建了一个包含一些实体的表单(比如姓名,地址等)。我已经在模型类中定义了验证规则。客户端验证可以根据需要完美运行。现在我需要创建自定义验证规则。为此,在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>

3 个答案:

答案 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');
    }
}