0

我将 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("....

由于没有“db”,哪里崩溃了。CodeIgniter 3 的新解决方案是什么?我看过较旧的帖子,但似乎没有一个可以帮助我

谢谢!

4

2 回答 2

0

试试这个代码放在控制器中:

公共函数 __construct() {

    parent::__construct();


    $this->load->model('Login_model'); // load model 


}
于 2018-07-19T05:43:39.057 回答
0

问题已解决,问题是由于我的控制器扩展了 CI_Controller 而不是 MX_Controller。如此变化

       class Login extends CI_Controller 

       class Login extends MX_Controller 

解决了这个问题。

我花了一段时间通过调试第三方/MX/Loader.php 来弄清楚它,但是一旦我看到它正在寻找 MX_Controller 类型,我就进行了更改,并且效果很好。

此问题是与从 CI 2 迁移到 CI 3 以及使用 Wiredesignz 的 HMVC 相关的众多问题之一。另一个重要的问题是文件名的大写和调用上的大写,所以严格参考这个问题,我不得不在我的控制器中将调用大写(将“登录”更改为“登录”):

     $this->load->model('auth/Login_model');
     $response = $this->Login_model->attempt($username, sha1($password));

我已经进行了上述更改,所以这不再是一个障碍,我仍然想把它放在这里以防万一有人遇到完全相同的问题

感谢你的帮助

于 2018-07-19T14:37:55.253 回答