2010-07-30 11 views
0

J'ai commencé à utiliser cakePHP et j'ai un petit problème avec les routes. J'essaie de faire une sorte de catalogue pour les produits (e-shop sans shopping :)) et aime avoir des URLs comme "http://site.net/main_category/subcategory/subsubcategory-c154.htm" où -c signifie catégorie et 154 est un ID de la catégorie spécifiée. J'aime passer ce type d'URL à un contrôleur, mais dire CategoriesController la route:CakePHP Routes avec barre oblique en argument

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

ne ne fonctionne pas. Il continue de rechercher le contrôleur "main_category" car la catégorie principale est après la première barre oblique.

Avez-vous les gars (les femmes aussi bien sûr;)) ont une idée?

Remerciez est beaucoup kraklin

Répondre

0

Vous avez probablement besoin d'échapper au trait d'union. Il est répertorié comme l'un des caractères échappés par preg_quote(). Et vous devez absolument échapper au point.

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