Yii 表单模型 >> 检查其他字段在自定义验证中是否有效


Yii Form Model >> Check Other Fields Are Valid Inside A Custom Validation

假设我有一个带有a,b和c字段的表单。我将使用自定义验证来验证 c。在那里,我需要检查a和b是否已经有效。这意味着,只有当a&b有效时,我才需要验证c。

下面是我的代码示例。

public function rules() {
        return array(
                array('a', 'required'),
                array('b', 'numerical', 'min' => 18, 'max' => 99),                      
                array('c', 'mycustomvalidation')
        );
}
public function mycustomvalidation($attribute, $params) {
    if($this->validate(array('a', 'b'))) { // DO THE VALIDATION IF a & b ARE VALID ONLY
        $error = '';
        if($this->attributes[$attribute] > 1000)
            $error = $this->getAttributeLabel($attribute) . " must be lower than 1000.";
        if (!empty($error))
            $this->addError($attribute, $error);
    }
} 

请帮助我找到解决方案。谢谢!

您可以在控制器中编写:

if($model->validate(array('a','b')))
{
    if($model->validate(array('c')))
    {
        $model->save()
    }
}