Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-02-2008 22:28:24

julz
Membre
Date d'inscription: 19-07-2007
Messages: 33

[1.0.5] [resolu]Zend_Controller_ route + helper url

Bonsoir,

j'utilise zend_config pour paramétrer mes routes

Code:

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

Code:

$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():

Code:

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

 

#2 03-03-2008 11:30:37

julz
Membre
Date d'inscription: 19-07-2007
Messages: 33

Re: [1.0.5] [resolu]Zend_Controller_ route + helper url

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

 

#3 03-03-2008 15:10:02

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [1.0.5] [resolu]Zend_Controller_ route + helper url

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é çà ?

Code:

$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

 

#4 03-03-2008 22:13:32

julz
Membre
Date d'inscription: 19-07-2007
Messages: 33

Re: [1.0.5] [resolu]Zend_Controller_ route + helper url

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

Code:

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

 

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