我在我的一个Codeigniter模型中有以下 get_authors_list 功能
function get_authors_list($limit,$offset){
$data = array();
$this->db->select('*')->from('authors')->limit($limit,$offset)->order_by('id','desc');
$query = $this->db->get();
if ($query-> num_rows() > 0){
$data = $query->result_array();
}
return $data;
$q->free_result();
}
在升级到Codeigniter 2.1.2之前,我使用从我的控制器调用此方法
$data['authors'] = $this->author_model->get_authors_list(NULL, 0)
并且它按预期工作但在升级到codeigniter版本2.1.2之后它不起作用,为了使它工作我必须在我的函数调用中指定限制如下
$data['authors'] = $this->author_model->get_authors_list(50, 0)
指定NULL限制不起作用,为什么?我在这里做错了吗? 我正确地遵循了Codeigniter的升级说明,但这是我没想到的一些副作用。
欢迎任何解释。 谢谢!
答案 0 :(得分:4)
是的,它不起作用,因为在latest version of CodeIgniter文件的System/Database/DB_active_rec.php
中,他们对limit
函数中的一行进行了更改 早期的版本:
$this->ar_limit = $value;
现在,
$this->ar_limit = (int) $value;
因此,(int) null
正在转换为0
,您没有获得任何结果。
所以我认为你必须完全删除limit
电话。为什么还需要将其设置为null
?
答案 1 :(得分:3)
它不再起作用了。源代码发生了变化,现在忽略NULL
值。请参阅此commit。