Je rencontre un problème avec mes itinéraires.Problème de routeur Zend
Alors disons que je le TestController avec l'action modifier, qui obtient un paramètre nommé « nom ». L'URL d'accès est test.com/test/edit/name/randomname.
Je voulais le faire afin qu'il puisse être accessible par test.com/test/edit/randomname, donc j'ajouté ce dans la fonction _initRoutes dans Bootstrap.
$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route(
'test/edit/:name',
array('controller' => 'test', 'action' => 'edit', 'name' => 'Default'));
$router->addRoute('edit-test', $route);
Donc, cela fonctionne comme je le veux, mais un autre problème est survenu. J'ai un lien dans la layout.phtml qui est quelque chose comme
<a href="<?php echo $this->url(array('controller' =>'account','action'=>'logout'));?>">Logout</a>
Le problème est que lorsque je navigue à test.com/test/edit/randomname, le lien ci-dessus pour quelques changements de raison étranges et pointe vers le même URL que ci-dessus, c'est-à-dire test.com/test/edit/randomname.
Qu'est-ce qui ne va pas?
Remarque: En utilisant des modules, le TestController est dans le module par défaut.
Vous avez raison, cela a résolu mon problème et merci pour l'info sur le routage. – Systemfreak
Retiré ma réponse comme le vôtre est meilleur. Je n'ai jamais vraiment compris pourquoi ZF ne nécessite pas les deux params. –
@TimFountain: Oui, par défaut à la route actuelle me semble étrange. Peut-être que l'intention est d'accommoder le cas d'utilisation le plus simple dans lequel il n'y a pas de routes nommées. –