Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonsoir,
Je ne comprend pas le comportement de mes routes.
J'ai dans mon initializer :
public function initRoutes() { // Ajout de la nouvelle route $router = new Zend_Controller_Router_Rewrite(); $router->addRoute( 'default', new Zend_Controller_Router_Route( '/:language/:controller/:action/*', array( 'language' => null, 'controller' => 'index', 'action' => 'index' ) ) ); // Attribution de la route au front controller $this->_front->setRouter($router); }
Et dans un plugin (juste ça, j'ai commenté le reste) :
public function preDispatch(Zend_Controller_Request_Abstract $request) { print_r($request->getParams()); $param_language = $request->getParam('language', null); die($param_language); }
Quand j'appelle l'url http://localhost/tpl1/en, il me sort:
Array ( [controller] => en [action] => index [module] => default )
Ou est passé mon paramètre language ? :p
Une idée ?
Merci,
A+ benjamin.
Dernière modification par Delprog (15-11-2008 00:14:17)
Hors ligne
Hello,
As-tu regardé :
http://www.z-f.fr/forum/viewtopic.php?pid=3083
http://www.z-f.fr/forum/viewtopic.php?id=178
A+
Hors ligne
Salut,
J'ai lu les topics, mais je ne comprend quand même pas pourquoi j'obtiens un tel résultat.
Il devrait, comme je lui demande, me passer le paramètre "language" et j'aimerais bien savoir pourquoi il ne le fait pas
Peu-importe ce que je fais, le paramètre passe toujours en tant que controlleur et tout est décalé.
Je dois avoir un problème, mais je ne sais pas où il se trouve.
Merci,
A+ benjamin
Hors ligne
remplace :
'/:language/:controller/:action/*',
par
':language/:controller/:action/*',
Hors ligne
Bonsoir,
Déjà testé, aucune différence
Ce que j'ai testé (ce sera plus simple) :
- Avec et sans le setBaseUrl(), il le détecte de toute façon
- '/:language/:controller/:action/* (avec la route appropriée)
- ':language/:module/:controller/:action/* (avec la route appropriée)
- '/:language/:module/:controller/:action/* (avec la route appropriée)
- l'uri http://localhost/tpl1/en/index/index/truc/toto
- l'uri http://localhost/tpl1/en/default/index/index/truc
- l'uri http://localhost/tpl1/en
- l'uri http://localhost/tpl1/en/index
Rien à faire, il considère dans tous les cas que le controller est "en".
Quoi que je fasse, le paramètre language n'existe jamais.
A+ benjamin.
Dernière modification par Delprog (02-11-2008 23:27:33)
Hors ligne
Je vais sûrement dire une bêtise, mais tant pis.
Le root path de ton appli, il est correct ?
Hors ligne
Salut,
Tu parles de quoi exactement ?
Le baseUrl ?
A+ benjamin
Hors ligne
Delprog a écrit:
Salut,
Tu parles de quoi exactement ?
Le baseUrl ?
A+ benjamin
oui c'est ça et dans _construct :
if (null === $root) { $root = realpath(dirname(__FILE__) . '/../'); } $this->_root = $root;
Mais bon, j'imagine que tout est ok pour ça
Hors ligne
Salut,
Pour info, j'ai réglé le problème en ajoutant le router suite à un getRouter sur le front controller (c.f. doc).
Je ne sais pas pourquoi lorsque je crée un router comme indiqué précédemment et que je fais un setRouter sur le front controller, ça ne fonctionne pas.
Par contre, si je fais un getRouter() sur le front controller et ensuite un addRoute, ça fonctionne très bien.
A+ benjamin.
Hors ligne
Pages: 1