这让我疯了..
我有CI 2.1.3的全新安装
从这里复制了MY_Model:https://github.com/jamierumbelow/codeigniter-base-model
申请/核心。
autoload.php 中自动加载数据库库
正确配置了config文件夹中的database.php。
扩展MY_Model类,如下所示:
class User_m extends MY_Model{
public $_table = 'user';
public $primary_key = 'user_id';
}
在默认控制器中:
$this->load->model('user_m', 'user');
$row = $this->user->get(1);
echo $row->email;
这是查看CRUD lib如何工作的最简单的实现,但是我收到以下错误:
Fatal error: Call to a member function where() on a non-object in MY_Model.php on line 135
MY_Model.php的第135行:
$row = $this->_database->where($this->primary_key, $primary_value)
->get($this->_table)
->{$this->_return_type()}();
答案 0 :(得分:1)
if (!$this->_db)
{
$this->_database = $this->load->database();
}
不会从$ this-> load-> database();
返回任何数据库对象来自CI文档:
/**
* Database Loader
*
* @param mixed $params Database configuration options
* @param bool $return Whether to return the database object
* @param bool $query_builder Whether to enable Query Builder
* (overrides the configuration setting)
*
* @return void|object|bool Database object if $return is set to TRUE,
* FALSE on failure, void in any other case
*/
public function database($params = '', $return = FALSE, $query_builder = NULL)
尝试:
if ( $this->db ) {
$this->_database = $this->db;
} else {
$this->_database = $this->load->database('default', true, true);
}
稍后编辑:
我找到了该模型的固定版本。用this one