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