CodeIgniter 分页 url 页码

Posted

技术标签:

【中文标题】CodeIgniter 分页 url 页码【英文标题】:CodeIgniter pagination url page number 【发布时间】:2012-04-27 22:10:50 【问题描述】:

据我所见,CodeIgniter 的分页计数错误,因为我的分页看起来像这样:

1 2 3 >

很好,问题出在每个分页号的url中,除了第一个:

分页中的数字 2 具有以下网址:

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

而数字3的网址如下:

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);

【问题讨论】:

【参考方案1】:

遇到了同样的问题,我添加了这个配置行:

$config['use_page_numbers'] = TRUE;

并且它就像一个魅力!

【讨论】:

我添加了额外的代码以使上述工作像@Dale 提到的那样工作。【参考方案2】:

您是否在分页配置中使用页码?

CodeIgniters 分页的工作方式(默认情况下)是您设置要在代码中显示的记录数,CodeIgniter 计算出偏移量并将其附加到 URL。

第 1 页(如果您愿意的话)末尾没有数字的原因是因为没有偏移量,第 2 页的偏移量为 1,因为它偏移了那么多记录。哇,这比我开始输入这个答案之前想象的要难解释!

:编辑:

另外,如果您在分页配置中使用页码,我想代码点火器正在获取 per_page 数量并将其乘以页码以获得记录的实际偏移量。

第 2 页的实际偏移量实际上是 per_page (15) * page_number (1) = 15。

【讨论】:

从你说的看,我似乎做的一切都是正确的。我用配置代码更新了我的答案。 对不起,我应该解释一下,这是 codeigniter 的工作方式,我认为如果你真的想让它显示“正确”的页码,它需要对 ci 的分页类进行某种形式的破解。 我也不确定这个.. $config['uri_segment'] = $this->uri->segment(2);我认为这样做实际上是将 uri_segment 设置为 $this->uri->segment(2) 的值,它可能是 40987,这不起作用:) 是的,我注意到并将$config['uri_segment'] 固定在右侧。现在我遇到了一个问题,所以如果我在空页(第一个)上,分页不起作用,它在一页显示 50 条记录中的 50 条,而不是每页 5 条记录......你能帮忙吗?那个? 我正在获取具有以下限制的记录:$config['per_page'], $page * $config['per_page'] -> (LIMIT, OFFSET),请参阅我的更新答案。

以上是关于CodeIgniter 分页 url 页码的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter 分页首页 URL

如何使用 codeigniter 分页库回显页码?

在Codeigniter中搜索的分页不起作用

带有获取参数的codeigniter分页url

按特定页码获取分页数据

Codeigniter 分页从不同页面和不同员工的不同活动链接开始,而代码相同