использовать метод контроллера из модельного класса в cakephp - PullRequest
2 голосов
/ 29 сентября 2011

В моем проекте cakephp я использую метод afterSave () класса модели.В этом методе я хочу вызвать другой метод, который находится в файле app_controller.

class MyModel extends AppModel {

        var $name = 'MyModel';

        function afterSave($created) {

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

}

Здесь updateData () находится в файле app_controller, который расширяется контроллером MyController.

приведенный выше код не работает, так как я могу на самом деле вызвать updateData () в этом случае ..

Пожалуйста, руководство.

Спасибо

1 Ответ

5 голосов
/ 29 сентября 2011

Это настоятельно НЕ рекомендуется, но это можно сделать в любом случае ... Вы должны попробовать, как говорит Дейзел, и переместить этот метод в AppModel или любую другую конкретную модель ...

вы можете использовать эту функцию

App :: import () проверьте книгу здесь , чтобы увидеть, как ее использовать

в вашем примере:

class MyModel extends AppModel {

        var $name = 'MyModel';

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

}

Это правильный путьзагрузить класс в другом месте, где его не должно быть ... Тем не менее, вы можете использовать include или required и создать экземпляр класса, так как это php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...