2014-02-06 42 views
0

我在yii框架中使用gii代碼生成器創建了註冊表單。 Gii代碼生成器在fname,lname,email等字段中創建了所有驗證規則。 現在我試圖把我的自定義驗證規則放在所有字段中。所以我需要在yii框架的en-billet字段中禁用其他驗證規則。如何禁用yii框架的驗證規則

我該怎麼做。

+0

在模型中發佈你的規則方法,並告訴我們你想禁用哪個字段驗證 –

+0

數組('firstName','length','max'=> 20), array('lastName', 'length','max'=> 40),我想禁用firstName和lasrName的驗證 – himanshu

回答

1

假設你在模型中有這樣的:

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

這意味着驗證方法檢查的firstNamelastName長度,並檢查它們的長度不應大於20和40

如果您想從驗證中刪除此規則,則可以簡單地刪除該行,並將其中的自定義驗證規則放入其中。

0

還可以擴展類的CActiveRecord並覆蓋save()方法,該方法接受屬性和設置$runValidation

這是一個需要overwrited中的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; 
} 
0

你可以取消/刪除默認的規則,並與您的自定義規則替換它。