2012-11-28 41 views
0

現在,我已經創建了10+的模型,你需要的內容過濾器,然後再儲存,我怎麼能onbeforesave的公共yii如何註冊onbeforesave事件模型?

protected function beforeSave() 
    { 
     if($this->hasEventHandler('onBeforeSave')) 
     { 
      $event=new CModelEvent($this); 
      $this->onBeforeSave($event); 
      return $event->isValid; 
     } 
     else 
      return true; 
    } 
+1

能否詳細說明一下?我很抱歉,但我並不真正瞭解你想與'公衆'說什麼。過濾器是什麼意思?你的意思是驗證該模型屬性中的用戶輸入數據是否可以安全地發送到數據庫?如果是這樣,你應該有你的模型規則()與屬性,並且他們的類型設置正確。之後你可以調用$ model-> validate()yii將根據你的rules()方法檢查它們。 – njasm

+0

爲什麼要過濾?爲了安全目的,比如Xss atack預防? – Hemc

+0

我希望能夠有一個公共方法,不會讓我改變很多代碼 –

回答

1
public function beforeSave() { 
    if (!empty($this->attribute)) 
     // apply logic to validate content 
    return true; 
} 

事件模型提供註冊屬性名稱到內容,您想申請支票。 for one beforeSave()全部型號check herealso

+1

爲此,我需要更改超過10個模型文檔,我查看源代碼,在保存之前檢查此事件是否已保存數據在外部註冊一個事件,而不必更改模型文件。我想這會減少我的工作量 –

+0

檢查鏈接。你會得到你想要做的。 – Hemc