Codeigniter分页和URI路由

时间:2012-12-07 21:13:56

标签: php codeigniter routing pagination

我的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时,它可以正常工作。

我在这里做错了什么?

4 个答案:

答案 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答案,其中一个问题。我希望它能清除你所有的疑虑。