我创建了一个新的模型类作为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,所以我看不出调用该方法之前,这个属性的值.
我尝试谷歌搜索其他几个案例,但没有一个匹配我的情况,而没有一个可以解决我的问题.
您必须先加载数据库
$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)