5

Stackoverflowに関するすべての質問を読みましたが、質問に対する明確な回答はありません。私は現在、codeigniterページ付けライブラリを使用して、制限とオフセットを使用してページ付けリンクを生成しています。

$config['base_url'] = base_url() . 'explore/featured/index/';
    $config['total_rows'] = $this->Projects_model->get_featured_count();//Count featured projects
    $config['per_page'] = 12;
    $config['uri_segment'] = 4;
    $config['display_pages'] = FALSE;
    $config['next_link'] = 'Older →';
    $config['prev_link'] = '← Newer';
    $this->pagination->initialize($config);
    $limit = $config['per_page'];
    $offset = $this->uri->segment(4);

    $data['pagination'] = $this->pagination->create_links();

    $data['projects'] = $this->Projects_model->get_featured($limit, $offset); //get featured projects from database

上記のコードは、クエリの出力値を制限し、4番目のURIセグメントに含まれるオフセットを使用します。

以下のコードをページ番号に変更するにはどうすればよいですか?URLでオフセットを使用できなくなるため、不可能のように見えます。

4

4 に答える 4

18

ある時点で、CIはページネーションライブラリを(最終的に)これに対応するように更新しました。

$config['use_page_numbers'] = TRUE;

デフォルトでは、URIセグメントはページ付けしているアイテムの開始インデックスを使用します。実際のページ番号を表示する場合は、これをTRUEに設定します。

この機能を備えていないバージョンを使用していて、CIインストール全体を更新できない場合は、最新のページネーションライブラリにドロップするだけで済みます。

DBオフセットを計算するには$limit * $page_number、「page_number」がURLの値(この場合は4番目のセグメント)である場合に使用します。

于 2012-07-13T23:43:27.103 に答える
-1
$page_num = $this->uri->segment(1);
$offset = ($page_num  == NULL) ? 0 : 
          ($page_num * $config['per_page']) - $config['per_page'];
于 2015-03-01T11:08:15.673 に答える