我们假设我的表格有a,b& c字段。我将使用自定义验证来验证c。在那里,我需要检查是否一个& b已经有效。这意味着,我只需要在& b有效。
以下是我的代码示例。
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);
}
}
请帮我找到解决方法。谢谢!
答案 0 :(得分:0)
您可以在控制器中书写:
if($model->validate(array('a','b')))
{
if($model->validate(array('c')))
{
$model->save()
}
}