0

在 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 方法不起作用!什么都不返回,没有错误,但没有添加验证或错误!如何为属性编写和调用正确的公共私有方法?

4

1 回答 1

0

你必须调用它,$this->checkNotEmpty()因为它是一个类方法。

于 2013-05-02T07:47:56.707 回答