蛋糕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' ...
或者我的方式离开的标志?谢谢。
答
你需要三条路线,顺序如下:
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'
* )
*/
与 “轨道” 标签? – NeilS 2010-04-28 18:42:34
是的,cakephp基于轨道非常紧密。 – Smickie 2010-04-28 20:02:12