2010-02-17 37 views
0

現在我的模型中有幾個方法都是在它們開始時(模型的父類)獲取相同的對象。我想自動執行此操作並預先執行一些代碼。CakePHP:在某些模型方法之前執行代碼

我想在調用方法getParentId(),getParentTable()和mayChange()之前執行fetchParent()。

它不足以在初始化時設置此父對象,或者作爲父類可以在運行時更改的類變量。

回答

0

根據「某些方法」的含義,您可能能夠使用Cake的本地回調。更多關於http://book.cakephp.org/view/76/Callback-Methods。不過,似乎更有可能的是,您希望使用自定義方法的常用功能。如果是這樣的話,那麼我所做的就是創建自定義回調。爲此,請在所需的模型中創建自定義回調。然後,在AppModel::your_method()中,測試是否存在該方法名稱,如果存在,則執行它。

下面是我寫在過去的一些示例代碼:

# In AppModel::your_method() 
if (method_exists ($model, 'your_custom_callback')) { 
    $model->your_custom_callback ($model); 
} 

# In YourModel 
public function your_custom_callback ($model) { 
    /** Your custom code */ 
} 

您沒有提供太多細節,所以我不知道這是否會滿足您的需求完全是,但也許它會在最少提供一個起點。

+0

感謝您的回答,但我想配置應該在這些方法*之外執行回調*的方法。我已經爲我的問題添加了詳細信息。 – blinry 2010-02-17 14:52:37

+0

我認爲這種方法仍然適用於你。如果您可以提供您參考的方法存在的模型,我會嘗試使用您的具體情況更新我的答案。 – 2010-02-17 16:38:03

相關問題