Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Par défaut, le controller est configuré pour passer deux paramètre.
monsite.com/index/nomparam1/valeurparam1/nomparam2/valeurparam2
Je voudrais reconfigurer le router pour pouvoir rajouter autant de paramètre que je veux. Je suis actuellement en fonctionnement par module et multilangue.
$router = $frontController->getRouter(); $router->addRoute( "basic", new Zend_Controller_Router_Route( "/:language/:module/:controller/:action/:parameter1/:parameter2", array( "language"=>"fr", "module"=>"album", "controller"=>"index", "action"=>"index", "parameter1"=>null, "parameter2"=>null) ) );
Je ne peux donc plus passer les paramètres comme dans la configuration par défaut et je n'arrive pas à le remettre.
J'ai essayé en enlevant tout ce qui à un rapport avec les paramètres mais cela ne donne rien.
Avez vous une idée?
Merci d'avance.
Hors ligne
Pour faire ça j'utilise les Router_Regexp :
http://framework.zend.com/manual/en/zen … utes.regex
Et je fais mon parsing d'URL (enfin de chaque bout d'URL concerné par le routage) à la main dans un plugin...
Il y a peut-être plus simple, mais bon ça marche en tout cas, et tu es très libre avec ton URL...
A+, Philippe
Hors ligne
Ben c'est sur que là, y'a conflit
Ce que tu peux faire, c'est d'utiliser le routeur Router_Regexp comme dit philippe (mais je dirais pas besoin d'un parsing, le routeur le fera).
Et le truc serai d'indiquer que le :language ne fait que 2 chars genre [a-z]{2} et du coup (si t'as pas de nom de controller à 2 chars) ça devrait régler l'affaire (à voir )
Hors ligne
$router = $frontController->getRouter(); $router->addRoute( "basic", new Zend_Controller_Router_Route( "/:language/:module/:controller/:action/:parameter1/:parameter2/:parameter3", array( "language"=>"fr", "module"=>"album", "controller"=>"index", "action"=>"index", "parameter1"=>null, "parameter2"=>null, "parameter3"=>null) ) );
un truc du genre ça ça marche pas ?
Hors ligne
sekaijin a écrit:
Code:
$router = $frontController->getRouter(); $router->addRoute( "basic", new Zend_Controller_Router_Route( "/:language/:module/:controller/:action/:parameter1/:parameter2/:parameter3", array( "language"=>"fr", "module"=>"album", "controller"=>"index", "action"=>"index", "parameter1"=>null, "parameter2"=>null, "parameter3"=>null) ) );un truc du genre ça ça marche pas ?
Non, cela ne marchera puisque, d'une part, tu es limité à 3 paramètres et je ne voudrais pas avoir de limite du tout. D'autre part, tu dois appeler tes paramètres "parameter1/2/3", donc cela dépend de la position dans l'url et non du nom de la variable.
Je souhaiterais plus avoir quelque chose comme:
"/:language/:module/:controller/:action/id/:monumero/categorie/:unnom/etc/:autreparamètre"
ce qui ressemble plus au fonctionnement normale de php avec monsite.com/mapage.html?id=12&categorie=news&etc=....
Pour le Router_Regexp je vais lire la doc pour mieux comprendre (même si pour l'instant, la doc ne m'aide pas trop. Je ne la trouve pas terrible)
Le but est juste d'avoir des duos, nomduparam/valeurduparam, comme c'est déjà fait avec la configuration par défaut mais je n'arrive pas à le reproduire.
Dernière modification par slaughter (16-04-2008 14:05:04)
Hors ligne
Pages: 1