2

我在我的 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 的升级说明,但这是我没想到的一些副作用。

欢迎任何解释。谢谢 !

4

2 回答 2

4

是的,它不起作用,因为在他们文件中最新版本的 CodeIgniter中,他们对早期版本的函数中的一行进行了更改:System/Database/DB_active_rec.phplimit

$this->ar_limit = $value;

就是现在,

$this->ar_limit = (int) $value;

因此,(int) null正在转换为0,并且,您没有得到任何结果

所以我认为你必须limit完全删除呼叫。为什么你仍然需要设置它null

于 2012-09-11T08:30:14.500 回答
3

它不再起作用了。源代码发生了变化,现在将忽略NULL价值。请参阅此提交

于 2012-09-11T08:30:11.607 回答