CakePHP Маршруты с косой чертой в аргументе - PullRequest
0 голосов
/ 30 июля 2010

Я начал использовать cakePHP и у меня возникли небольшие проблемы с использованием маршрутов.Я пытаюсь сделать какой-то каталог для товаров (интернет-магазин без покупок :)) и хотел бы иметь URL-адреса типа "http://site.net/main_category/subcategory/subsubcategory-c154.htm", где -c означает категорию, а 154 - это идентификатор указанной категории. Мне нравитсячтобы передать URL-адреса этого типа одному контроллеру, скажем CategoriesController, но маршрут:

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

не работает. Он продолжает поиск контроллера "main_category", так как main_category идет после первого слэша.* У вас, ребята (тоже, конечно, дамы;)) есть идеи?

Спасибо большое, Краклин

1 Ответ

0 голосов
/ 02 августа 2010

Вам, вероятно, нужно избежать дефиса. Он указан в качестве одного из символов, экранированных от preg_quote () . И вам определенно нужно убежать от точки.

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