Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter:分页与参数冲突_Php_Codeigniter_Parameters_Pagination_Conflict - Fatal编程技术网

Php CodeIgniter:分页与参数冲突

Php CodeIgniter:分页与参数冲突,php,codeigniter,parameters,pagination,conflict,Php,Codeigniter,Parameters,Pagination,Conflict,这就是我的情况: 我有一个页面localhost/ctc/product来显示产品,localhost/ctc/product/abcxyz来显示单个产品abcxyz的详细信息。因为产品列表太长,所以在我想对主页分页之前,它工作得很好。我使用常用的分页类进行分页,但当我进入下一页时,url变成这样:localhost/ctc/product/1,我认为它将分页编号误认为是一个产品,页面上什么也没有显示。那么我该如何解决这个问题呢?谢谢大家,我的英语不好,很抱歉 问题解决了。感谢John B和ot

这就是我的情况: 我有一个页面localhost/ctc/product来显示产品,localhost/ctc/product/abcxyz来显示单个产品abcxyz的详细信息。因为产品列表太长,所以在我想对主页分页之前,它工作得很好。我使用常用的分页类进行分页,但当我进入下一页时,url变成这样:localhost/ctc/product/1,我认为它将分页编号误认为是一个产品,页面上什么也没有显示。那么我该如何解决这个问题呢?谢谢大家,我的英语不好,很抱歉


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

您应该使用正则表达式限制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";
所以现在有两条路由在URI中具有相同数量的“参数”,但路由器意识到了差异。一个将字符串作为最后一个参数,最后一个路由将整数作为最后一个参数

我没有时间在本地服务器上测试这个。但是你应该知道这是怎么回事


Joust read through docs here:

我个人会使用不同的函数来显示产品细节,但如果你坚持认为你可以通过在uri段上使用is_numeric()函数来解决问题,并让它相应地执行操作。+1,但要注意的是,如果你需要接受的字符超过a到z,您必须更新正则表达式以接受它,或者只需使用
(:any)