2

Codeigniter モデルの 1 つに次の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 に答える