2010-07-30 75 views
0

我已经开始使用cakePHP并且在使用路由时遇到了一些问题。我正在尝试为产品制作某种产品目录(电子商店没有购物:)),并且喜欢拥有类似“http://site.net/main_category/subcategory/subsubcategory-c154.htm”的网址,其中-c表示类别,154表示指定类别的Id。我喜欢将这种类型的URL传递给一个控制器,例如CategoriesController,但是路由:CakePHP在参数中使用正斜杠的路由

Router::connect('/:categoryUrl', 
       array(
        'controller' => 'categories', 
        'action'=> 'display' 
       ), 
       array(
        ':categoryUrl' => '(.*)-c([0-9]+).htm' 
       ) 
      ); 

不起作用。它继续搜索“main_category”控制器,因为main_category在第一个斜杠后面。

你们(女士们,当然;))有一些想法?

感谢的很多 kraklin

回答

0

你可能需要逃避连字符。它被列为由preg_quote()逃过的其中一个字符。你绝对需要逃避这一点。

'(.*)\-c([0-9]+)\.htm'