簡體   English   中英

CodeIgniter:調用模型時的未定義屬性

[英]CodeIgniter: Undefined property when calling the model

我將HMVC與CodeIgniter 3一起使用。

有誰知道為什么我得到以下錯誤

    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的新解決方案是什么? 我看過較早的帖子,但似乎都沒有幫助

謝謝!

只需嘗試將此代碼放入控制器即可:

公共功能__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));

我已經做了上述更改,因此它不再是一個障礙,但我還是想將其放在此處,以防萬一有人遇到了完全相同的問題

感謝你的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM