开发者

use controller method from model class in cakephp

开发者 https://www.devze.com 2023-04-09 14:10 出处:网络
In my cakephp project, 开发者_JAVA百科I use afterSave() method of a model class. In this method, I want to call another method that is located in app_controller file.

In my cakephp project, 开发者_JAVA百科I use afterSave() method of a model class. In this method, I want to call another method that is located in app_controller file.

class MyModel extends AppModel {

        var $name = 'MyModel';

        function afterSave($created) {

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

}

Here updateData() is located in app_controller file, which is extended by MyController controller.

The above code does not work, so how can i actually call updateData() in this case..

Please guide.

Thanks


This is strongly NOT recommended but it can be done anyway... You should try as deizel says and move that method to AppModel or any other particular model...

you may use this function

App::import() check the book here to see how to use it

in your example:

class MyModel extends AppModel {

        var $name = 'MyModel';

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

}

This is the correct way to load a class inside another place where it shouldn't be... Still you may use include or required and create an instance of the class since this is php.

0

精彩评论

暂无评论...
验证码 换一张
取 消