蛋糕PHP路由问题

问题描述:

我需要在蛋糕做一些特殊的路由,但不能为我的生活弄明白。蛋糕PHP路由问题

我在/shop店控制器,该网址的格式为:

/shop/:category/:sub_category/:product_slug 

在路由我需要在网址的每一部分发送到不同的动作,例如,如果网址是只是/shop/cakes它会去商店的分类行动。

但是,如果网址是/shop/cakes/macaroons/shop/cakes/fairy它将转到店铺控制器上的子类别操作。

而且/shop/cakes/macaroons/pistachio也一样会转到店铺控制器上的产品动作​​。

我该如何在路由中解决这个问题?东西开始

Router::connect('/shop/:category/:sub_category/:product_slug' ... 

或者我的方式离开的标志?谢谢。

+0

与 “轨道” 标签? – NeilS 2010-04-28 18:42:34

+0

是的,cakephp基于轨道非常紧密。 – Smickie 2010-04-28 20:02:12

你需要三条路线,顺序如下:

Router::connect(
    '/shop/:category/:sub_category/:product_slug', 
    array('controller'=>'shops','action'=>'product'), 
    array('pass'=>array('product_slug')) 
); 
// Dispatches to ShopsController::product($product_slug) 
/* 
* Reverse route: 
*  array(
*   'controller'=>'shops','action'=>'product', 
*   'category'=>$some_category', 'sub_category'=>$some_sub_category 
*   'product_slug'=>$some_product_slug 
* ) 
*/ 

Router::connect(
    '/shop/:category/:sub_category', 
    array('controller'=>'shops','action'=>'subcategory'), 
    array('pass'=>array('sub_category')) 
); 
// Dispatches to ShopsController::subcategory($sub_category) 
/* 
* Reverse route: 
*  array(
*   'controller'=>'shops','action'=>'product', 
*   'category'=>$some_category', 'sub_category'=>$some_sub_category 
* ) 
*/ 

Router::connect(
    '/shop/:category', 
    array('controller'=>'shops','action'=>'category'), 
    array('pass'=>array('category')) 
); 
// Dispatches to ShopsController::category($category) 
/* 
* Reverse route: 
*  array(
*   'controller'=>'shops','action'=>'product', 
*   'category'=>$some_category' 
* ) 
*/