Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonsoir,
j'utilise zend_config pour paramétrer mes routes
routes.procedure.route = "procedure/:controller/:idprocedure/:action/:value" routes.procedure.defaults.module = procedure routes.procedure.defaults.controller = index routes.procedure.defaults.action = index routes.procedure.defaults.idprocedure = null routes.procedure.defaults.value = null routes.procedure.reqs.idprocedure = "\d+" routes.procedure.reqs.value = "\d+"
jusqu'à présent je faisais mes urls à la main en reconstituant manuellement, et je souhaite utiliser le helper url, pour simplifier les mise à jours éventuelles..
exemple
$urlOptions = array( 'module' => 'procedure', 'controller' =>'index', 'action' => 'search' ); $urlPath = $this->_urlHelper->url($urlOptions, 'procedure', true, true);
ce qui me donne bien l'url : /procedure/index//search
seulement, les paramètres renvoyés sont incorrects si je souhaite laisser les paramètres comme cela
Voilà ce que j'obtiens comme paramètres en traçant $request->getParams():
array 'module' => string 'procedure' 'controller' => string 'index' '' => string 'search' 'action' => string 'index'
je devrais pourtant avoir
idprocedure => null (valeur par défaut)
action=>search
je vois pas très bien ce qui cloche
merci d'avance
Dernière modification par julz (03-03-2008 22:13:49)
Hors ligne
bon, je vois que ça n'inspire pas grand monde mon problème
je dois pas être le seul à avoir des urls du genre : /1eres/parties//autres/parties
comment faites vous pour gérer les parmètres null ?
merci bien
Hors ligne
Je ne vois pas de moyen de faire cela
tu ne peux pas mettre une valeur défaut pour idprocedure ?
sinon, tu peux peut-être créer une route bis pour gèrera le cas "/procedure/index/search"
EDIT
As-tu essayé çà ?
$urlOptions = array( 'module' => 'procedure', 'controller' =>'index', ); $urlPath = $this->_urlHelper->url($urlOptions, 'procedure', true, true);
Dernière modification par oracle (03-03-2008 15:13:02)
Hors ligne
merci de ta réponse, j'ai fais comme tu disais avec une nouvelle route
j'ai quand même décortiqué les classe pour remonter jusqu'à l'assignation des valeurs passées dans l'url.
J'aime bien comprendre et surtout pourquoi ça marche dans un sens (création avec helper url) et pas dans l'autre
(récupération avec getParams())
En fait dans la classe Zend_Controller_Request_Abstract (ligne 287), le framework supprime des paramètres une clé qui a pour valeur null
if ((null === $value) && isset($this->_params[$key])) { unset($this->_params[$key]);
c'est dommage, mais logique en fait
bon à savoir quand on choisit la position de ses paramètres dans ses routes
Hors ligne
Pages: 1