我正在使用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无法工作..如果有人有想法那么请分享。 感谢..
答案 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');