Bonsoir,
J'ai un prob, j'ai deux règles dans routes.php qui sont :
Router::connect('/categories/:id-:slug',
array('controller'=>'categories', 'action'=>'view'),
array(
'pass'=>array('id','slug'),
'id'=>'[0-9]+',
'slug'=>'[a-z0-9\_\-]+'
)
);
Router::connect('/projets/:id-:slug',
array('controller'=>'projects', 'action'=>'view'),
array(
'pass'=>array('id','slug'),
'id'=>'[0-9]+',
'slug'=>'[a-z0-9\_\-]+'
)
);
Et je génère mes liens comme ceci dans un élément menu et un autre sous-menu (pour les projets)
$linkcat = $this->Html->Link($category'Category']'name'],
array('controller'=>'categories','action'=>'view',
'id'=>$category'Category']'id'],
'slug'=>$category'Category']'slug']),
array('class'=>$class)
);
$linkproject = $this->Html->Link($project'Project']'name'],
array('controller'=>'projects','action'=>'view',
'id'=>$project'Project']'id'],
'slug'=>$project'Project']'slug']),
array('class'=>$class)
);
Tandis que le lien pour les categories est bon et me donne une url correcte au survol et au clic :
/monsite/categories/21-mon-slug
Le lien pour les projets est récalcitrant et me donne ça :
monsite/projects/view/id:118/slug:mon-slug
Mes méthodes view prennent bien en paramètre id et slug
What is going on ?
C'est ok,
Mon slug dans ma base de donnée n'était tout simplement pas au bon format (au format "slug", disons), c'était :
'mon slug', et pas : 'mon-slug' ce qui est correct
Du coup ça faisait bugger des liens.
J'espère que ce sujet aidera quelqu'un un jour.