0
現在我的模型中有幾個方法都是在它們開始時(模型的父類)獲取相同的對象。我想自動執行此操作並預先執行一些代碼。CakePHP:在某些模型方法之前執行代碼
我想在調用方法getParentId(),getParentTable()和mayChange()之前執行fetchParent()。
它不足以在初始化時設置此父對象,或者作爲父類可以在運行時更改的類變量。
現在我的模型中有幾個方法都是在它們開始時(模型的父類)獲取相同的對象。我想自動執行此操作並預先執行一些代碼。CakePHP:在某些模型方法之前執行代碼
我想在調用方法getParentId(),getParentTable()和mayChange()之前執行fetchParent()。
它不足以在初始化時設置此父對象,或者作爲父類可以在運行時更改的類變量。
根據「某些方法」的含義,您可能能夠使用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 */
}
您沒有提供太多細節,所以我不知道這是否會滿足您的需求完全是,但也許它會在最少提供一個起點。
感謝您的回答,但我想配置應該在這些方法*之外執行回調*的方法。我已經爲我的問題添加了詳細信息。 – blinry 2010-02-17 14:52:37
我認爲這種方法仍然適用於你。如果您可以提供您參考的方法存在的模型,我會嘗試使用您的具體情況更新我的答案。 – 2010-02-17 16:38:03