使用cakephp中模型类的控制器方法

时间:2011-09-29 14:15:49

标签: cakephp model

在我的cakephp项目中,我使用模型类的afterSave()方法。在这个方法中,我想调用另一个位于app_controller文件中的方法。

class MyModel extends AppModel {

        var $name = 'MyModel';

        function afterSave($created) {

            $this->MyController->updateData();          
        }

}

这里updateData()位于app_controller文件中,该文件由MyController控制器扩展。

上面的代码不起作用,所以在这种情况下如何实际调用updateData()..

请指导。

由于

1 个答案:

答案 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。