【问题标题】:Cakephp routing to same controllerCakephp 路由到同一个控制器
【发布时间】:2025-12-16 07:55:02
【问题描述】:

我想让它像:

www.xxx.com/product1 使用订单控制器的 index() 并将 product1 作为参数传递。

www.xxx.com/product2 使用订单控制器的 index() 并将 product2 作为参数传递。

那么,

www.xxx.com/product1/shipping 使用订单控制器的 shipping()。

www.xxx.com/product2/shipping 使用订单控制器的 shipping()。

我试过了:

Router::connect('/:product', 
array('controller' => 'order'),
array(
        'product' => 'product1|product2',
        'pass' => array('product')
)
);

它适用于www.xxx.com/product2

我尝试/:product/:action 让它在index() 之后工作,但效果不佳。它显示missing controller for product1 或其他内容。

我该怎么办?

【问题讨论】:

    标签: routing routes cakephp-1.3


    【解决方案1】:

    一般来说,我建议您使用某种分母来表示您正在查看产品这一事实,例如hostname.tld/products/product1 或者更短的host.tld/p/product1。这将使您在将来更容易扩展它。您可能想看看 REST 或 Restful URL 的概念。

    但是,如果你想坚持这个计划,你应该尝试用 Apache 重写你的 URL,这对用户来说会更快,更容易自己跟踪,更灵活,因为你可以编写各种模式,包括正则表达式。

    【讨论】:

      最近更新 更多