现在我在我的模型中有几个方法,它们都在它们的开头(模型的父类)获取相同的对象。我想自动执行此操作并事先执行一些代码。
我想在调用方法getParentId(),getParentTable()和mayChange()之前说“执行fetchParent()”。
仅在初始化时设置此父对象或作为类变量,因为父级可以在运行时更改。
答案 0 :(得分: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 */
}
你没有提供太多细节,所以我不知道这是否能完全满足你的需求,但也许它至少会提供一个起点。