Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je débute avec Zend Framework et je rencontre un dysfonctionnement auquel je souhaite bénéficier de vos lumières. En voici l'énoncé:
Je veux obtenir une url de la forme : article/products_d-Titre du produit-isbn-catégorie du produit.html.
Donc dans mon bootstrap j'initialise une route Regex:
$this->_front->getRouter()->addRoute('detail_route', new Zend_Controller_Router_Route_Regex( 'article/(\d+)-(\w+)-(\w+)-(\w+).html', array( 'module' => 'default', 'controller' => 'item', 'action' => 'detail' ), array( 1 => 'products_id', 2 => 'name', 3 => 'isbn', 4 => 'autor' ), 'article/%d-%s-%s-%s.html' ) );
Puis dans ma vue correspondante :
<a href=" <?php echo $this->url( array('products_id'=>'1254', 'name'=>'Toto', 'isbn'=>'14587DR41', 'autor'=>'business'), 'detail_route') ?>">Rerwite Url</a>
Le résultat obtenu est conforme à ce que je veux.
Par contre le hic, est que toutes mes urls prennent la forme de : article/1254-Toto-14587DR41-business.html lorsque que je suis dans cette page.
Y'a-t-il un retour d'expérience sur ce cas? Merci d'avance.
Hors ligne
Oui effectivement
Hors ligne
Je viens de m'inspirer d'une réponse postée sur ce lien http://www.z-f.fr/forum/viewtopic.php?id=3967 qui préconise de mettre default pour le second paramètre de la fonction url().
En effet, cela permet d'ignorer les routes et d'utiliser les liens par défault
Effectivement ça marche, mais il va falloir faire cette modification dans tous les helpers de vue. C'est laborieux.
Y'a-t-il une idée d'initialiser ce comportement une fois?
Je pourrais le faire dans la fonction url(), mais il n'est jamais opportun de modifier le code source.
Hors ligne