在我的cakephp项目中,我使用模型类的afterSave()方法。在这个方法中,我想调用另一个位于app_controller文件中的方法。
class MyModel extends AppModel {
var $name = 'MyModel';
function afterSave($created) {
$this->MyController->updateData();
}
}
这里updateData()位于app_controller文件中,该文件由MyController控制器扩展。
上面的代码不起作用,所以在这种情况下如何实际调用updateData()..
请指导。
由于
答案 0 :(得分:5)
强烈建议不要这样做,但无论如何都可以...你应该尝试deizel说并将该方法移动到AppModel或任何其他特定模型......
你可以使用这个功能
App :: import()检查book here以了解如何使用它
在你的例子中:
class MyModel extends AppModel {
var $name = 'MyModel';
function afterSave($created) {
App::import('Controller', 'My');
$something = new MyController;
$something->updateData();
}
}
这是将一个类加载到另一个不应该出现的地方的正确方法...仍然可以使用include或required并创建该类的实例,因为这是php。