我的config / routes文件中有一条路由如下:
$route['thing/(:num)'] = 'site/pages/$1';
在我site/pages
中的分页配置中,有以下相关选项:
$config["base_url"] = base_url() . "thing";
$config["uri_segment"] = 3;
以上正确生成链接,如:thing / 20,thing / 40(因为我已经给出了每页20个配置选项)并且第一页正确显示了20个链接。
但是,当我点击第二页链接时,它会返回404.当我继续将浏览器中的网址编辑到/ site / pages / 20或site / pages / 40时,它可以正常工作。
我在这里做错了什么?
答案 0 :(得分:2)
您实际上想要读取路由的URI段(实际位于URL中的段)。由于您的路由配置,它将是第二个段:
$config["uri_segment"] = 2;
来自docs:
分页功能自动确定URI的哪个部分包含页码。如果您需要不同的东西,可以指定它。
分页类通过猜测3
假设controller/method/param
(默认值),其中“param”是方法的第一个/唯一参数。
但是,您的路由在第二段中包含页码,因此只需将其设置为2
。
答案 1 :(得分:0)
查看codeigniter用户指南http://ellislab.com/codeigniter/user-guide/libraries/pagination.html
中提供的优秀示例答案 2 :(得分:0)
尝试使用
$config["base_url"] = base_url("thing/");
$config["uri_segment"] = 2;
记住这一点 uri段被称为uri
答案 3 :(得分:0)
如果您正在寻找任何参考如何进行分页,同时对每个页面链接有良好的路由,请查看我提出的Pagination reference答案,其中一个问题。我希望它能清除你所有的疑虑。