gpt4 book ai didi

php - CodeIgniter 路由

转载 作者:可可西里 更新时间:2023-11-01 13:36:08 27 4
gpt4 key购买 nike

我正在开发一个带有 CI 的电子商务网站,其中包含产品类别和产品。我想路由 URL 以便它转到产品 Controller ,然后为第一个段运行 getCategoryByName 函数,然后为第二个段运行 getProductByName 函数。这是我所拥有的:

URL:products/docupen/rc805
routes.php:$route['products/([a-z]+)'] = "products/getCategoryByName/$1";$route['products/([a-z]+)/([a-z0-9]+)'] = "products/$1/getProductByName/$2";

但是它不起作用。 “docupen”是类别,“rc805”是产品。

提前致谢。


谢谢大家的帮助。这就是我最终得到的我需要的东西。

$route['products/:any/:num'] = "products/getProductByID";$route['products/:any/:any'] = "products/getProductByName";$route['products/:any'] = "products/getCategoryByName";

最佳答案

我的回答有点基于 Colin 的回答。

当我尝试使用 CodeIgniter 中的路由时,我得出的结论是路由的顺序很重要。当它找到第一条有效路线时,它不会执行列表中的其他路线。如果它没有找到任何有效的路由,那么它将处理默认路由。

我在我的特定项目中使用的路线如下:

$route['default_controller'] = "main";
$route['main/:any'] = "main";
$route['events/:any'] = "main/events";
$route['search/:any'] = "main/search";
$route['events'] = "main/events";
$route['search'] = "main/search";
$route[':any'] = "main";

如果我输入“http://localhost/index.php/search/1234/4321”,它将被路由到 main/search,然后我可以使用 $this->uri->segment(2); 检索 1234

在您的场景中我会尝试(顺序非常重要):

$route['products/:any/:any'] = "products/getProductByName";
$route['products/:any'] = "products/getCategoryByName";

我不知道如何按照您想要的方式进行路由 (products/$1/getProductByName/$2),但我不确定您将如何创建 Controller 来处理这种特殊形式的网址。使用 Colin 在 Controller 中提到的 $this->uri->segment(n); 语句,您应该能够做您想做的事。

关于php - CodeIgniter 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288258/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com