2010-02-17 79 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

相关问题