Bonjour,

Je rencontre un problème avec cakephp2, j'ai crée un router ( pour un système de forum) et il m'est impossible de le faire fonctionner. Je me suis basée du des routers fonctionnelle.

Router::connect('/forum', array('controller' => 'forums', 'action' => 'index'));
                Router::connect('/forum/:slug-:id', array('controller' => 'forums', 'action' => 'showforum'), array('pass' => array('id', 'slug'), 'id' => '[0-9]+', 'slug'=>'[a-z0-9\-]+'));
                Router::connect('/forum/post/:slug-:id', array('controller' => 'forums', 'action' => 'showpost'), array('pass' => array('id', 'slug'), 'id' => '[0-9]+', 'slug'=>'[a-z0-9\-]+'));

C'est le dernier Router qui n'est pas prit en compte alors que les codes pour la création du lien sont les mêmes.

Avez vous des idées de ce qui provoque le problème ?

Merci d'avance et bonne année 2013 :)

5 réponses


Essaie d'inverser l'ordre des règles.

Même avec un changement de position rien n'évolue, elle n'est toujours pas prise en compte, idem si je change le /forum/post en autre chose.

Dans la logique il faudrait que la règle la plus restrictive soit en 1er nan ?

Dans la logique des choses, il me semble que oui, mais rien ne change quand même :/ mais ce que je comprend pas c'est même en ajoutent un lien moins restrictif sa fonctionne pas

public function afterFind($data){
        foreach($data as $k => $d){
            if(isset($d'Forumpost']'slug']) && isset($d'Forumpost']'id'])){
                $d'Forumpost']'link'] = array(
                    'controller' => 'forums',
                    'action' => 'showpost',
                    'id' => $d'Forumpost']'id'],
                    'slug' => $d'Forumpost']'slug']
                );
            }
            $data$k] = $d;
        }
        return $data;
    }

<div class="forum_postlist_title">
                <?php echo $this->Html->link($v'Forumpost']'title'],$v'Forumpost']'link']); ?>         
            </div>

up ?