Codeigniter模型错误

San*_*eep 0 php codeigniter

我创建了一个新的模型类作为my_model.php内部/models文件夹,并在其中创建一个函数来加载所有元素:

function get_all(){
    $query = $this->db->get('test'); //test is my table 
   return $query->result();
}
Run Code Online (Sandbox Code Playgroud)

在控制器中,我实例化了类并调用了方法;

$this->load->model('my_model');
$res = $this->my_model->get_all();
Run Code Online (Sandbox Code Playgroud)

但是,这引发了我的错误说:

致命错误:在第7行的/var/www/testapp/application/models/my_model.php中调用非对象的成员函数get()

这一行7指向我使用过的代码部分$this->db.我想看到的价值$db,但我认为这是魔术访问__get__set,所以我看不出调用该方法之前,这个属性的值.

我尝试谷歌搜索其他几个案例,但没有一个匹配我的情况,而没有一个可以解决我的问题.

Muh*_*man 5

您必须先加载数据库

$this->load->database();
Run Code Online (Sandbox Code Playgroud)

所以,所有代码:

function get_all(){
    $this->load->database();
    $query = $this->db->get('test'); //test is my table 
    return $query->result();
}
Run Code Online (Sandbox Code Playgroud)

或者,在__construct方法中加载数据库.

或者,IMO,最好通过更改自动加载数据库application/config/autoload.php,示例如下.

$autoload['libraries'] = array('database','form_validation'); //form_validation is for example only
Run Code Online (Sandbox Code Playgroud)