-1

私は CodeIgniter の新しいユーザーです。CodeIgniter を使用して簡単なログイン ページを作成しようとしていますが、次のエラーが表示されます。

13 行目の C:\xampp\htdocs\CodeIg\application\models\user.php の非オブジェクトでメンバ関数 where() を呼び出します。

これのデバッグをどこから始めればよいかわかりません。提案をいただければ幸いです。

モデルの私のコードは次のとおりです。

<?php
class User extends CI_model{  
    function __construct()
    {
        parent::__construct();
    }
    public function verifyuser()
    {
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $remember = $this->input->post('remember'); 
        $this->db->where('username', $username);
        $this->db->where('password', $password);
        $query = $this->db->get('user_login');
        $result = array();
        if($query->num_rows==0)
        {
            $result['false']=false;
            return $result;
        }
        else
        {
            $result=$query->result();
            foreach($result as $item)
            {
                $result['id']=$item->id;
                $result['username']=$item->username;
                $result['password']=$item->password;
            }
            return $result;
        }
    }
}
?>

コントローラーのコードは次のとおりです。

<?php
    class User_Controller extends CI_controller
    {
        public function getloginData()
        {
            $this->load->model('User');
            $rvalue = $this->User->verifyuser();
            header('Content-type: application/json');
            echo json_encode($rvalue);
        }
    }
?>
4

2 に答える 2

2

データベースが初期化されていません。
application/config/autoload.php に「データベース」を含める必要があります。

$autoload['libraries'] = array('database', 'session');

または、モデル クラス コンストラクターで次のようにします。

class User extends CI_model{ 

     public function __construct() 
     {
           parent::__construct(); 
           $this->load->database();
     }
}

ここで詳細情報を取得できます: http://ellislab.com/codeigniter/user_guide/database/connecting.html

于 2013-03-11T13:23:48.407 に答える
1

$this->dbは初期化されていないため、$this->dbnullであり、nullでwhere()を呼び出すと、このエラーが発生します。最初に$this->dbに何かを割り当てる必要があります。

これを行うには、コントローラー内でモデルをロードする必要があります

于 2013-03-11T13:11:26.570 に答える