我正在把头发拉出来。我正在使用 CodeIgniters 分页库,现在它总是卡在第 1 页作为当前页面。我检查了一堆 StackOverflow 问题,我没有遇到和其他人一样的问题。
这是我的网址结构
website.com/leaders/page/[page_number]
这是我的控制器中的分页代码
$this->load->library('pagination');
$config['per_page'] = $query_config['limit'];
$config['base_url'] = base_url() . 'leaders/page/';
$config['total_rows'] = 2000; // I actually use a function for this number
$config['full_tag_open'] = '<div id="paginate">';
$config['full_tag_close'] = '</div>';
$config['first_link'] = '« First';
$config['last_link'] = 'Last »';
$config['use_page_numbers'] = true;
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
当我在视图中呼应分页时,它看起来像是有效的。每个链接上的网址都是正确的,一切看起来都很好。最后一个链接显示最后一页网址,当前页面为 1。但是,当我单击第 2 页或分页中的任何其他页面时,即使 url 如下所示,它仍将第 1 页显示为当前页面
website.com/leaders/page/2
我使用$this->uri->segment(3)
来获取数据库查询的页码,因此页码位于正确的段中。只是为了仔细检查,我将$config['uri_segment']
值设置为 1,2,3,4,5,6 只是为了确保。
我在写这篇文章时发现了问题,但我仍然很困惑
然后我想可能是 url 本身发生了一些事情,因为我有一条路由将它指向控制器中的 index 方法。这是我的路线文件的样子
路由.php
$route['leaders/page/(:num)'] = 'leaders/index';
$route['leaders/page'] = 'leaders/index';
然后我尝试为分页配置设置 base_url 以将其直接发送到索引,如下所示:
$config['base_url'] = base_url . 'leaders/index';
现在它似乎工作正常。但是我该如何让它与我之前的 url 结构一起工作呢?我只是觉得它看起来更好,我真的不需要控制器中的方法。我的 routes.php 文件中是否有冲突?
谢谢