Yii私人通用验证方法

时间:2013-05-01 15:17:46

标签: php yii

在Yii php项目中,我使用自定义验证:

public function rules() {   
    return array(
        array('nbC', 'cCustomValidation'),
}

public function cCustomValidation() {
    if ($this->nbC >= 1) {
        if (empty($this->c_attrA_1)) $this->addError('c_attrA_1', Yii::t('yii', '{attribute} cannot be blank.', array('{attribute}'=>$this->getAttributeLabel('c_attrA_1'))));
        if (empty($this->c_attrB_1)) $this->addError('c_attrB_1', Yii::t('yii', '{attribute} cannot be blank.', array('{attribute}'=>$this->getAttributeLabel('c_attrB_1'))));
        if (empty($this->c_attrC_1)) $this->addError('c_attrC_1', Yii::t('yii', '{attribute} cannot be blank.', array('{attribute}'=>$this->getAttributeLabel('c_attrC_1'))));
    }
}

我想使用这样的私有函数:

private function checkNotEmpty($attribute) {
    if (empty($attribute)) $this->addError(''.$attribute, Yii::t('yii', '{attribute} cannot be blank.', array('{attribute}'=>$this->getAttributeLabel($attribute))));
}

像这样调用cCustomValidation:

public function cCustomValidation() {
    if ($this->nbC >= 1) {
        checkNotEmpty($this->c_attrA_1);
        checkNotEmpty($this->c_attrB_1);
        checkNotEmpty($this->c_attrC_1);
    }
}

但我的checkNotEmpty方法不起作用!什么都不返,没有错误,但没有添加验证或错误! 如何为属性编写和调用正确的公共私有方法?

1 个答案:

答案 0 :(得分:0)

您必须将其称为$this->checkNotEmpty(),因为它是一种类方法。