Codeigniter HMVC重新声明错误即将到来

时间:2011-05-13 16:14:19

标签: php codeigniter

我正在使用CI 2.0.2并使用5.4 Modular扩展..

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

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无法工作..如果有人有想法那么请分享。 感谢..

3 个答案:

答案 0 :(得分:11)

在桌子上敲了一会儿,然后用Google搜索,我找到了答案。您的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,即使它本身不是模块的一部分。

答案 1 :(得分:2)

您不能仅在视图中使用Module::run weithin控制器。而不是你必须使用:

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

答案 2 :(得分:0)

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

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