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 页码的主要内容,如果未能解决你的问题,请参考以下文章