Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Après des recherches infructueuses, je viens vers vous en espérant trouver solution à mon problème.
Actuellement, mes URLs sont du types : article/details/id/8/titre/un-titre
J'aimerais avoir ce genre d'URLs : article-8-un-titre
J'ai donc, dans mon bootstrap, ajouté ceci :
$router = Zend_Controller_Front::getInstance()->getRouter(); $route = new Zend_Controller_Router_Route_Regex( 'article/([0-9]*)-([a-zA-Z\-]*)', array('controller' => 'article', 'action' => 'details'), array(1 => 'id', 2 => 'titre'), 'article-%d-%s' ); $router->addRoute('article', $route); Zend_Controller_Front::getInstance()->setRouter($router);
Dans ma vue, le lien s'affiche correctement : article-8-un-titre
Mais, lorsque j'arrive sur la page dudit lien, j'ai ce message d'erreur
An error occurred Page not found Exception information: Message: Invalid controller specified (article-8-un-titre) [... la stack trace ...] Request Parameters: array ( 'controller' => 'article-8-un-titre', 'action' => 'index', 'module' => 'default', )
Il cherche 'article-8-un-titre' comme contrôleur ? Je ne comprends pas du tout ce point.
Si quelqu'un possède la clé de ce problème, j'en serais fort ravi.
Merci d'avance,
Dernière modification par Thoomaas (20-12-2011 15:17:20)
Hors ligne
Bonsoir Thoomaas,
As-tu essayer de mettre de + à la place des *. C'est comme ça qu'ils font dans la doc Zend.
Et aussi, tu as mit article/(... au lieu de article-(...
$route = new Zend_Controller_Router_Route_Regex( 'blog/archive/(\d+)-(.+)\.html', array( 'controller' => 'blog', 'action' => 'view' ), array( 1 => 'id', 2 => 'description' ), 'blog/archive/%d-%s.html' ); $router->addRoute('blogArchive', $route);
Dernière modification par Roromix (18-12-2011 22:35:37)
Hors ligne
Bonjour Roromix,
Merci beaucoup pour ta réponse rapide, et surtout efficace.
Le problème semble être résolu.
Bonnes fêtes de fin d'année !
EDIT : J'ai encore quelques soucis que je vais essayer de régler. Puis, je passerais en Résolu le sujet.
EDIT2 : Peut-être sauriez-vous m'aider, lorsque je suis sur une page dont l'url est une route personnalisée, ce dernier transforme les liens dont la route est "null".
Par exemple,
$this->url(array('controller'=>'gestion'), null, true);
N'affiche pas /gestion mais la route de l'url, soit pour mon cas article-8-un-titre
Merci.
Dernière modification par Thoomaas (19-12-2011 16:42:23)
Hors ligne
le mieux dans ce cas c'est que tu utilises le helper baseUrl()
$this->baseUrl('gestion')
Dernière modification par Roromix (20-12-2011 12:26:19)
Hors ligne
Bonjour Roromix,
Encore une fois, réponse rapide et efficace.
Merci.
Hors ligne
Pages: 1