2010-07-30 1 views
0

Я начал использовать cakePHP и немного проблем с использованием маршрутов. Я пытаюсь сделать какой-то каталог для продуктов (интернет-магазин без шоппинга :)) и хотел бы иметь такие URL-адреса, как «http://site.net/main_category/subcategory/subsubcategory-c154.htm», где -c означает категорию, а 154 - это идентификатор указанной категории. Я хотел бы передать этот тип 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'