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