Bonjour,

Voila mon problème:

J'ai 2 routes :
Router::connect('/groupes/:id', array('controller' => 'controller', 'action' => 'show'),array('pass' => array('id'), 'id'=>'[0-9]+'));
Router::connect('/groupes/:id-:lettre', array('controller' => 'controller', 'action' => 'show'),array('pass' => array('id','lettre'), 'id'=>'[0-9]+', 'lettre'=>'[a-z]'));

Dans ma BDD j'ai des enregistrement pour les groupes 1,2,3
Losque je vais sur /groupes/3 j'ai bien mon résultat qui s'affiche idem si je vais sur /groupes/3-b
(Enregistrement dans la base groupe_id = 3 et titre commençant par un b)

En revanche, des que je n'ai pas de résultat j'ai bien le message de l'exception mais en plus j'ai ceci
Error: The requested address '/groupes/3-m' was not found on this server. (Exemple de groupe_id = 3 et titre commençant par m)

Ou alors Error: The requested address '/groupes/4' was not found on this server si je teste une url avec 0 enregistrement

Merci à vous ;)

Greg

5 réponses


Gregory
Auteur
Réponse acceptée

C'est bon en fait mon problème venait de mon fichier error j'avais fait un error404.ctp alors que c'est un error400.ctp

Merci en tout cas ;)

Gregory
Auteur

Personne pour mon petit problème?

Salut désolé pour l'attente je viens juste de tomber sur ton problème, pour ton problème c'est comme l'url rewriting, je sais pas si tu connais, il faut toujours mettre les url avec le plus de paramètres à passer en premier comme cela ton lien fonctionnera.

Du coup cela donne :

Router::connect('/groupes/:id-:lettre', array('controller' => 'controller', 'action' => 'show'),array('pass' => array('id','lettre'), 'id'=>'[0-9]+', 'lettre'=>'[a-z]'));
Router::connect('/groupes/:id', array('controller' => 'controller', 'action' => 'show'),array('pass' => array('id'), 'id'=>'[0-9]+'));

A++ et bonne poursuite.

Gregory
Auteur

Merci pour ta réponse mais j'ai toujours le meme message d'erreur.

Dans ce cas modifie le nom des éléments a afficher, tu peut essayer par exemple ':idgroupe-:lettre' sa peut aussi être cela.