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 ?

1 réponse


chatoninja
Auteur
Réponse acceptée

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.