Cakephp路由到同一个控制器

时间:2013-02-06 01:51:00

标签: routing routes cakephp-1.3

我想这样做:

www.xxx.com/product1 使用order controller的index()并将product1作为参数传递。

www.xxx.com/product2 使用order controller的index()并将product2作为参数传递。

然后,

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

www.xxx.com/product2/shipping 使用订单控制器的运输()。<​​/ p>

我试过了:

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

,适用于www.xxx.com/product2

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

我该怎么办?

1 个答案:

答案 0 :(得分:0)

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

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