在第13行的...中的非对象上调用成员函数where()

时间:2013-03-11 13:09:50

标签: php mysql json codeigniter

我是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);
        }
    }
?>

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

$this->db未初始化,因此$this->db为null并且调用null()on null会导致此错误..您必须首先将内容分配给$ this-&gt; db。

为此,您必须在控制器中添加模型