如何禁用yii框架的验证规则

时间:2014-02-06 06:26:05

标签: php yii

我在yii框架中使用gii代码生成器创建了注册表单。 Gii代码生成器在fname,lname,email等字段中创建了所有验证规则。          现在我试图将我的自定义验证规则放在所有字段中。所以我需要在yii框架的那个字段中禁用其他验证规则。

我怎么想这样做。

3 个答案:

答案 0 :(得分:1)

假设您的模型中有此内容:

public function rules(){
return array(
  array('firstName', 'length', 'max'=>20),
  array('lastName', 'length', 'max'=>40),
);
}

这意味着验证方法会检查firstNamelastName的长度,并检查其长度是否不应大于20和40。

如果要从验证中删除此规则,只需删除该行,然后将自定义验证规则放入其中。

答案 1 :(得分:0)

您还可以扩展 CActiveRecord 类,并覆盖接受属性的save()方法,并将$runValidation设置为 false

这是CActiveRecord中需要被覆盖的函数:

public function save($runValidation=true,$attributes=null)
{
    if(!$runValidation || $this->validate($attributes))
        return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes);
    else
        return false;
}

答案 2 :(得分:0)

您可以取消注释/删除默认规则,并将其替换为自定义规则。