cakephp - 使用 cakephp 中模型类的 Controller 方法

标签 cakephp model

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

class MyModel extends AppModel {

        var $name = 'MyModel';

        function afterSave($created) {

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

}

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

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

请指导。

谢谢

最佳答案

强烈不建议这样做,但无论如何都可以这样做...您应该尝试按照 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。

关于cakephp - 使用 cakephp 中模型类的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598675/

相关文章:

php - 如何在应用程序上为每个用户创建新的数据库或数据库实例?

java - 两个里面几乎有重复代码的类

php - yii 中 CGridView 的调用函数

php - 如何从 View 中使用模型函数? - 拉维尔 5.4

php - 未定义的方法 File::save() (Laravel 模型)

mysql - 如何在codeigniter模型中使用mysql事件调度程序

sql - CakePHP - SQL 查询中的列别名

mysql - 将 MySQL 用户定义变量与 CakePHP3 查询选择结合使用

php - 我应该限制连接到数据库的数量吗?

symfony - 是否可以使用 symfony/yaml 为 yaml 中的键使用别名?