我在yii框架中使用gii代码生成器创建了注册表单。 Gii代码生成器在fname,lname,email等字段中创建了所有验证规则。 现在我试图将我的自定义验证规则放在所有字段中。所以我需要在yii框架的那个字段中禁用其他验证规则。
我怎么想这样做。
答案 0 :(得分:1)
假设您的模型中有此内容:
public function rules(){
return array(
array('firstName', 'length', 'max'=>20),
array('lastName', 'length', 'max'=>40),
);
}
这意味着验证方法会检查firstName
和lastName
的长度,并检查其长度是否不应大于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)
您可以取消注释/删除默认规则,并将其替换为自定义规则。