Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour.
Je souhaiterai savoir si certain d'entre vous ont déjà réussi à repasser au format d'URL ?nom=valeur ?
Dans mon application, j'utilise le routeur par défaut, et donc l'url est de la forme :
/module/controller/action/param1/value1/param2/value2
J'ai fais un formulaire de recherche qui redirige donc vers un lien de la forme ci-dessus.
Je souhaiterai savoir s'il existe un moyen de repasser certains paramètre derrière le "?".
/module/controller/action/value1?param2=value2
(param1 est enlevé pour ne faire apparaître que la valeur)
Est-ce possible avec les routes existantes ?
Comment feriez-vous sinon ? Proprement …
Merci.
Hors ligne
Salut,
Les query strings ne sont pas dans la "philosophie" d'url de ZF. Tu peux quand même les utiliser mais pas les générer avec le routeur.
<a href="<?php echo $this->url(array( 'controller' => 'super-controller', 'action' => 'super-action' ), 'default'); ?>?param1=val1¶m2=val2" title="Lien avec query string">Mon super lien</a>
Attention par contre aux routes avec des valeurs par défaut, tu risques de te retrouver avec tes paramètres en double, exemple :
/super-controller/super-action/param1/val1/param2/val2?param1=val1¶m2=val2
Si tu génères ton url à partir d'une route et que tu passes les params en paramètres de l'aide url, il n'y a aucun moyen de les convertir en query string, le routeur va les assembler comme ceci :
param1/val1/param2/val2.
A+ benjamin.
Hors ligne
Hmm, c'est bien ce que j'ai compris en fouillant le code source des routeurs
Ce n'est peut-être pas leur "philosophie", mais techniquement, c'est parfois une nécessité.
Bref, je ferai avec.
Merci bien
Hors ligne