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

Pra*_*ant 2 cakephp model

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

class MyModel extends AppModel {

        var $name = 'MyModel';

        function afterSave($created) {

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

请指导.

谢谢

api*_*i55 5

强烈建议不要这样做,但无论如何都可以这样做......你应该尝试deizel说并将该方法移动到AppModel或任何其他特定模型......

你可以使用这个功能

App :: import()检查这里,看看如何使用它

在你的例子中:

class MyModel extends AppModel {

        var $name = 'MyModel';

        function afterSave($created) {
            App::import('Controller', 'My');
            $something = new MyController;
            $something->updateData();          
        }

}
Run Code Online (Sandbox Code Playgroud)

这是将一个类加载到另一个不应该的地方的正确方法...仍然可以使用include或者必需并创建该类的实例,因为这是php.