【问题标题】:Is there any super controller or global controller in CodeigniterCodeigniter中是否有超级控制器或全局控制器
【发布时间】:2012-03-28 00:04:41
【问题描述】:

我想从另一个控制器(比如 controller_b)调用一个控制器(比如 controller_a)中的一个函数

请帮帮我..

【问题讨论】:

  • 你为什么要这样做?

标签: php model-view-controller codeigniter hmvc


【解决方案1】:

共享控制器功能通常应该在扩展控制器类中:

<?php
/**
 *  File: /application/core/MY_Controller.php
 */
class MY_Controller extends CI_Controller {

    /**
     * Prefix with an underscore if you don't want it
     * publicly available through URI-routing
     */
    public function _some_shared_method()
    {
        // some common operation here
    }

}

然后,确保任何需要使用此功能的控制器扩展 MY_Controller

【讨论】:

    【解决方案2】:

    您会通过从另一个控制器调用一个控制器来破坏 MVC。考虑为您尝试调用的函数使用帮助程序或库。

    当控制器调用其他控制器时,您是在 HMVC 框架中操作的。见Modular Extensions

    如果您正在寻找有关控制器继承的信息,我建议您阅读 Phil Sturgeon 在Keeping It Dry 上的帖子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      相关资源
      最近更新 更多