-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->db是 null 并且在 null 上调用 where() 会导致这个错误。你必须先给 $this->db 分配一些东西。

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

于 2013-03-11T13:11:26.570 回答