Codeigniter HMVC 重新声明错误即将到来
我正在使用 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 不起作用。如果有人有想法,请分享。 谢谢..
I am using CI 2.0.2 and using 5.4 Modular extension..
I have user as a default controller.
class User extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function login{ echo modules::run('login/main'); }
}
Here is my modules/login/controller
class Login extends MX_Controller{
public function __construct(){
parent::__construct();
$this->load->model('login_model','login');
}
public function main{
$arrUserInfo = $this->login->getUserInfo();
}
}
If I use "MX_Controller" then I am getting below error
Fatal error: Cannot redeclare class CI in E:\Projects\mySite\application\third_party\MX\Base.php on line 55
So I have change with "CI_Controller" then I am getting below error
An Error Was Encountered
Unable to locate the model you have specified: login_model
I am not getting why modular MVC not working.. If anyone have an idea then please share it.
thanks..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在把头敲在桌子上一会儿并谷歌搜索后,我找到了答案。您的
User
控制器应该扩展MX_Controller
,而不是CI_Controller
:显然,您调用模块控制器的任何控制器都必须扩展
MX_Controller
,即使它本身不是模块的一部分。After beating my head on the desk for a while and Googling around, I found the answer. Your
User
controller should extendMX_Controller
, notCI_Controller
:Apparently, any controller that you're calling a module controller from must extend
MX_Controller
, even if it is not itself part of a module.您不能仅在视图中的控制器内使用
Module::run
。相反,你必须使用:You cannot use
Module::run
weithin a controller only in Views. Instead of that you have to use:此外,加载模型时必须指定模块名称。
即
$this->load->model('login/login_model','login');
Also, when loading models you must specify the module name.
i.e.
$this->load->model('login/login_model','login');