我将CodeIgniter 3与HMVC一起使用。
有人知道为什么我会得到以下错误吗
Severity: Notice
Message: Undefined property: Login::$login_model
在下面的第二行。我清楚地称这个模型为,但由于一些奇怪的原因,它没有正确连接
$this->load->model('auth/login_model');
$response = $this->login_model->attempt($username, sha1($password));
然后模型是相当基本的:
<?php
class Login_model extends CI_Model
{
public function attempt($user, $pass)
{
...
现在,如果我使用一个对象,它是有效的,但我在很多地方都有同样的问题,包括我有的地方
$this->db->select("....
where正在崩溃,因为没有"db"。CodeIgniter 3的新解决方案是什么?我看到过旧的帖子,但似乎没有一个能帮助我摆脱
谢谢!
只需尝试将此代码放入控制器:
公共函数__construct(({
parent::__construct();
$this->load->model('Login_model'); // load model
}
问题已解决,问题是由于我的控制器扩展了CI_controller而不是MX_controller。所以改变
class Login extends CI_Controller
至
class Login extends MX_Controller
解决了这个问题。
通过调试thirdparty/MX/Loader.php,我花了一段时间才弄清楚,但当我看到它在寻找MX_Controller类型时,我做了更改,它运行得很好。
这个问题是与从CI 2迁移到CI 3以及使用Wiredesignz的HMVC有关的众多问题之一。另一个大问题是文件名的大写字母和调用的大写字母,所以严格地说,我必须在我的控制器中大写调用(将"login"改为"login"(:
$this->load->model('auth/Login_model');
$response = $this->Login_model->attempt($username, sha1($password));
我已经做了上述更改,所以这不再是一个拦截器,但我想把它放在这里,以防有人遇到完全相同的问题
感谢大家对的帮助