【问题标题】:Codeigniter Multi-level InheritanceCodeigniter 多级继承
【发布时间】:2012-07-11 11:31:06
【问题描述】:

我在使用多级继承时遇到问题,如下所示。

我有一个扩展 CI_Controller 类的顶级控制器

class Application extends CI_Controller
{
}

名为“Site”和“Admin”的控制器将应用程序控制器扩展为

class Site extends Application
{
}

class Admin extends Application
{
}

最后,'User' 和 'Guest' 类扩展了 'Site' 控制器

class User extends Site
{
}

Class Guest extends Site
{
}

问题是,在用户和访客控制器中,我无法加载核心库,如分页、form_validation 等使用

$this->load->library('分页);

但是当我在站点控制器或应用程序控制器中加载库时它可以工作,即。扩展核心 CI_Controller 的控制器,它是子控制器。当我尝试加载孙子时,它不起作用。

有人可以澄清为什么会这样吗?谢谢...

【问题讨论】:

    标签: codeigniter inheritance codeigniter-2


    【解决方案1】:

    我以前没有见过设置多级构造函数类,但它应该可以工作。

    你是在每个类的构造函数中调用parent::__construct()吗?

    【讨论】:

    • 是的,我就是这么叫的。唯一的问题是我无法从孙子那里加载库。
    【解决方案2】:

    结帐CodeIgniter Base Controllers,包括解释。

    【讨论】:

      【解决方案3】:
      //-Create MY_Controller.php on application/core/MY_Controller.php
      //contents of MY_Controller.php
      class Application extends CI_Controller{
          function __construct(){
            // Call the CI_Controller constructor
            parent::__construct();        
          }
      }
      //that is all now you can inherit class (Application) anywhere in your project
      

      【讨论】:

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