4

私が見たところ、CodeIgniterのページ付けは、ページを間違った方法でカウントしています。これは、ページ付けが次のようになっているためです。

1 2 3>

そして、その良い点は、最初のものを除いて、各ページ番号のURLに問題があります。

ページネーションの2番目のURLは次のとおりです。

http://my-url.com/index.php/page/ 1

そして、番号3には次のURLがあります。

http://my-url.com/index.php/page/ 2

そのため、URLは毎回1ずつ減っていきます。

どうすればそれを解決できますか?URLのページ番号はページネーションのページ番号と同じになりますか?

私のページネーション設定:

$config['per_page']    = 5;
$config['base_url']    = site_url('page');
$config['uri_segment'] = 2;
$page = $this->uri->segment(2);
$total_rows_array = $this->records->get($config['per_page'], $page * $config['per_page']); // parameters: limit, offset.
$config['total_rows']  = count($total_rows_array);
4

2 に答える 2

15

あなたと同じ問題があり、次の構成行を追加しました。

$config['use_page_numbers'] = TRUE;

そしてそれは魅力のように機能します!

于 2013-01-22T15:45:26.923 に答える
4

ページネーション設定でページ番号を使用していますか?

CodeIgniter のページネーションが (デフォルトで) 機能する方法は、コードに表示するレコードの数を設定することです。CodeIgniter はオフセットを計算し、それを URL に追加します。

ページ 1 の最後に番号がないのは、オフセットがないためです。ページ 2 は、多くのレコードをオフセットしているため、オフセットが 1 になります。うわー、これは私がこの答えを入力し始める前に思っていたよりも説明するのがずっと難しいです!

:編集:

また、ページネーション構成でページ番号を使用している場合、コード イグナイターが per_page の量を取得し、それにページ番号を掛けて、レコードの実際のオフセットを取得していると思います。

ページ 2 は、実際のオフセットとして per_page (15) * page_number (1) = 15 として機能します。

于 2012-04-16T15:16:12.723 に答える