0

这是我的情况:我有页面localhost/ctc/product来显示产品和localhost/ctc/product/abcxyz来显示单个产品 abcxyz 的详细信息。它工作正常,直到我想对我的主页进行分页,因为产品列表太长了。我使用通常的分页类进行分页,但是当我进入下一页时,url 变成这样:localhost/ctc/product/1,我认为它会将分页号误认为是产品,并且页面什么也没有显示。那么我该如何解决这个问题呢?谢谢大家,对不起我的英语不好。

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

4

1 回答 1

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 个路由在 URI 中具有相同数量的“参数”,但路由器知道差异。一个将字符串作为最后一个参数,最后一个路由将整数作为最后一个参数。

我没有时间在本地服务器上测试这个。但是你应该明白这应该如何工作。

在这里阅读文档:Codeigniter Routing

于 2012-10-10T18:55:55.747 回答