Codeigniter HMVC Re-Declare 错误即将到来


Codeigniter HMVC Re-Declare error coming

我正在使用CI 2.0.2并使用5.4模块化扩展。

我有用户作为默认控制器。

class User extends CI_Controller{
 public function __construct(){
   parent::__construct();
 } 
 public function login{ echo modules::run('login/main'); }
}

这是我的模块/登录名/控制器

class Login extends MX_Controller{
  public function __construct(){
    parent::__construct();
  $this->load->model('login_model','login');
 } 
  public function main{
     $arrUserInfo = $this->login->getUserInfo();
  }
}

如果我使用"MX_Controller",那么我得到以下错误致命错误:无法在第 55 行的 E:''Projects''mySite''application''third_party''MX''Base.php 中重新声明类 CI

所以我用"CI_Controller"进行了更改,然后我得到以下错误

遇到错误找不到您指定的模型:login_model

我不明白为什么模块化MVC不起作用。如果有人有想法,请分享。谢谢。。

在桌子上敲了一会儿头,在谷歌上搜索了一会儿后,我找到了答案。您的User控制器应扩展MX_Controller,而不是CI_Controller

class User extends MX_Controller
{
    public function __construct(){
        parent::__construct();
    } 
    public function login { echo modules::run('login/main'); }
}

显然,您从中调用模块控制器的任何控制器都必须扩展MX_Controller,即使它本身不是模块的一部分。

您不能仅在视图中使用Module::run weithin控制器。相反,您必须使用:

$this->load->module('folder/controller');
$this->controller->method();

此外,在加载模型时,必须指定模块名称。

$this->load->model('login/login_model','login');