Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-12-2011 16:20:12

Thoomaas
Membre
Date d'inscription: 31-10-2011
Messages: 17

[Résolu][Zend_Router] La route se construit mais n'achemine pas !

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 :

Code:

$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

Code:

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

 

#2 18-12-2011 22:32:48

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: [Résolu][Zend_Router] La route se construit mais n'achemine pas !

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-(...

Code:

$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

 

#3 19-12-2011 15:14:16

Thoomaas
Membre
Date d'inscription: 31-10-2011
Messages: 17

Re: [Résolu][Zend_Router] La route se construit mais n'achemine pas !

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,

Code:

$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

 

#4 20-12-2011 12:25:39

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: [Résolu][Zend_Router] La route se construit mais n'achemine pas !

le mieux dans ce cas c'est que tu utilises le helper baseUrl()

Code:

$this->baseUrl('gestion')

Dernière modification par Roromix (20-12-2011 12:26:19)

Hors ligne

 

#5 20-12-2011 15:17:08

Thoomaas
Membre
Date d'inscription: 31-10-2011
Messages: 17

Re: [Résolu][Zend_Router] La route se construit mais n'achemine pas !

Bonjour Roromix,

Encore une fois, réponse rapide et efficace.

Merci.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages