在我的自定义模型中,数据库选择函数有问题。这是密码
class MY_Model extends CI_Model
{
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('inflector');
}
public function fetch($parameters = array(), $raw = FALSE)
{
$tablename = $this->getTableName();
$this->select_fields(FALSE == empty($parameters['fields']) ? $parameters['fields'] : FALSE);
unset($parameters['fields']);
if (FALSE == empty($parameters['limit'])) $limit = $parameters['limit'];
if (FALSE == empty($parameters['offset'])) $offset = $parameters['offset']; else $offset = 0;
unset($parameters['limit']);
unset($parameters['offset']);
if (FALSE == empty($limit))
{
$this->db->limit($limit, $offset);
}
$this->parseFilters($parameters);
$query = $this->db->get($tablename);
if ($query->num_rows() > 0)
{
if ($raw)
return $query;
$rows = $query->result();
$objects = array();
foreach ($rows as $row)
$objects[] = $this->hidrate($row);
return $objects;
}
else
{
return array();
}
}
protected function select_fields($fields)
{
if (TRUE == empty($fields))
{
$fields = "`" . $this->getTableName() . "`.*";
}
$this->db->select($fields);
}
public function fetchOne($parameters = array())
{
$parameters['limit'] = 1;
$list = $this->fetch($parameters);
if (FALSE == empty($list))
{
return reset($list);
}
else
{
return null;
}
}$this->db->select($fields); Fatal error: Call to a member function select() on a non-object中的外定义
该模型是一个自定义模型,应用程序模型对该模型进行了扩展。问题是为什么抛出该错误--数据库是正确的。
我在编码器1.7中创建了一个MY_loader,我尝试更新到代码点火器2
class MY_Loader extends CI_Loader
{
function model($model, $name = '', $db_conn = FALSE)
{
if (is_array($model))
{
foreach($model as $babe)
{
$this->model($babe);
}
return;
}
if ($model == '')
{
return;
}
if ( substr($model, -4) == '_dao' )
{
return parent::model('dao/' . $model, $name, $db_conn);
}
parent::model( 'dao/' . $model . '_dao', $model, $db_conn);
include_once APPPATH . '/models/' . $model . EXT;
}
}我不知道如何将这个模型更新为代码点火器2,而且我相信这个加载程序在我的MY_Model中会产生错误
发布于 2014-03-12 19:59:09
我将尝试排除为什么db作为非对象返回。
我会删除所有的代码,并从一个简单的select()开始,如果这有效的话,我将开始逐步添加代码,并查看它的中断位置。
一切似乎都井然有序,但首先您需要查看基本功能是否存在。
因此,删除所有代码,查看基本select()是否工作,如果不起作用,则进一步排除故障。2)如果是这样的话,继续添加代码,看看什么会破坏select()语句。3)继续添加代码,直到发现问题为止。
https://stackoverflow.com/questions/22356384
复制相似问题