CodeIgniter:与参数的分页冲突

时间:2012-10-10 18:42:09

标签: php codeigniter parameters pagination conflict

这是我的情况: 我有页面 localhost / ctc / product 来显示产品, localhost / ctc / product / abcxyz 显示单个产品abcxyz的详细信息。它工作正常,直到我想分页我的主页,因为产品列表太长。我使用通常的分页类来分页,但是当我到下一页时,网址会变成这样: localhost / ctc / product / 1 ,我认为它将分页编号误认为是产品,页面显示什么都没有。那么我该如何解决这个问题呢?谢谢你们所有人,抱歉我的英语不好。

问题解决了。感谢John B和otporan。

1 个答案:

答案 0 :(得分:1)

您应该使用正则表达式来限制url的最后一个参数中的内容。

您有3条路线:

ctc/product
ctc/product/abcxyz
ctc/product/1

你必须向路由器机制说明2路由应该只接受字符串作为最后一个参数, 并且第三条路线只能接受作为最后一个参数的数字。

你可以这样做:

$route['ctc/product/([a-z]+)'] = "controller/method/$1";
$route['ctc/product/([0-9]+)'] = "controller/method/$1";

所以现在你有2条路线具有相同数量的" params"在URI中,但路由器知道差异。一个将字符串作为最后一个参数,最后一个路由将整数作为最后一个参数。

我没有时间在本地服务器上测试它。但你应该知道这应该如何运作。

Joust在此处阅读文档:Codeigniter Routing