CodeIgniter消息:未定义属性:Member_model :: $ db

时间:2014-07-04 20:09:01

标签: php codeigniter

在我的autoload.php文件中

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

会员控制员:

Class Member extends CI_Controller {

    public function __construct() {        
        parent::__construct();
    }

    public function index()
    {

    }

    public function login()
    {
        $this->load->model('admin/member_model', 'member_model');

        $username = $this->input->get('username');
        $password = $this->input->get('password');

        $this->member_model->__set('username', $username);
        $this->member_model->__set('password', $password);

        $this->member_model->login();
    }
}

我的Member_model.php

Class Member_model extends CI_Model
{
    var $id;
    var $username;
    var $password;
    var $email;
    var $type;

    public function __set($name, $value)
    {
        $this->{$name} = $value;
    }

    public function __get($name)
    {
        return $this->{$name};
    }

    public function login()
    {
        $this->db->get('username');
    }
}

但是当我调用login member_model方法时,CodeIgniter会返回以下错误:

  

遇到PHP错误

     

严重性:注意

     

消息:未定义属性:Member_model :: $ db

     

文件名:admin / member_model.php

     

行号:17

我想知道我做错了什么以及如何解决它

1 个答案:

答案 0 :(得分:0)

Class Member_model extends CI_Model
    {
        var $id;
        var $username;
        var $password;
        var $email;
        var $type;
        var $db;
        public function setDb($db){
           $this->db = $db;
        }

        public function __set($name, $value)
        {
            $this->{$name} = $value;
        }

        public function __get($name)
        {
            return $this->{$name};
        }

        public function login()
        {
            $this->db->get('username');
        }
    }

$memberModel = new Member_model();
$memberModel ->setDb($db);
.......
$memberModel->login()

OR

Class Member_model extends CI_Model
        {
            var $id;
            var $username;
            var $password;
            var $email;
            var $type;
            var $db;
            public function __constructor($db, ..... some other params....){
               $this->db = $db;
               parent::__construct(..... some other params....);
            }

            public function __set($name, $value)
            {
                $this->{$name} = $value;
            }

            public function __get($name)
            {
                return $this->{$name};
            }

            public function login()
            {
                $this->db->get('username');
            }
        }

    $memberModel = new Member_model($db);

    .......
    $memberModel->login()