Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un petit soucis avec le helper url() qui ne me génère pas la bonne URL
Dans mon fichier de routes j'ai mis en places des url statiques :
routes.lesblogs.type = "Zend_Controller_Router_Route_Static" routes.lesblogs.route = "lesblogs" routes.lesblogs.defaults.module = "blog" routes.lesblogs.defaults.controller = "index" routes.lesblogs.defaults.action = "liste"
mon url fonctionne bien.
Dans ma vue j'ai le code suivant :
<li><a href="<?php echo $this -> url(array("module" => "personne", "controller" => "index", "action" => "mafiche"), "", true);?>">Modifier ma fiche</a></li>
Et là le href de mon lien est une reprise de l'url en cours (/lesblogs) par exemple.
Par contre si je ne passe pas par ma route statique ça fonctionne bien.
Si quelqu'un a une idée je suis preneur
Une dernière question :
Est-ce que ça change quelques chose si je met :
routes.lesblogs.route = "/lesblogs"
ou
routes.lesblogs.route = "lesblogs"
Cordialement,
Kaimite
Dernière modification par Mr.MoOx (21-07-2008 10:00:28)
Hors ligne
je crois qu'il faut initialiser les paramètres d'entrée lors de l'appel du helper url :
/** * Generates an url given the name of a route. * * @access public * * @param array $urlOptions Options passed to the assemble method of the Route object. * @param mixed $name The name of a Route to use. If null it will use the current Route * @param bool $reset Whether or not to reset the route defaults with those provided * @return string Url for the link href attribute. */ public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
Si je ne me trompe pas, il faut mettre à 1 le paramètre $reset, sinon ->url() garde les paramètres en cours.
Pour ta seconde question, si tes urls sont bien générés je te déconseilles de mettre "/...". Ou plutot dans des chemins en dur, soit tu mets toujours le "/" soit tu ne le met jamais. Chez moi, je me retrouve avec des chemins du genre "/module//param1/val.." parceque : dans le doute j'en rajoutais au code, ce n'était pas une bonne idée.
Hors ligne
Salut,
justement j'ai bien mis le $reset à true :
$this -> url(array("module" => "personne", "controller" => "index", "action" => "mafiche"), "", true);
Ok pour la 2e réponse
Cordialement,
Kaimite
Hors ligne
regarde ce que j'ai posté il y'a un temps, en espérant pouvoir t'aider : http://www.z-f.fr/forum/viewtopic.php?pid=6769#p6769
Hors ligne
Moi je vois un , "", avant le true qui n'a rien à faire là! Il faut préciser le nom de la route, si elle n'en a pas il faut mettre 'default' ou null je sais plus, mais je pense pas que "" soit un bonne valeur!
Hors ligne
C'était ça. Il faut mettre "default".
Je pensais qu'en ne donnant pas de nom la route par défaut était automatiquement sélectionnée.
Merci pour votre aide.
Bon w-e à vous.
Cordialement,
Kaimite
Hors ligne
Je pensais qu'en ne donnant pas de nom la route par défaut était automatiquement sélectionnée
Malheureusement (ou pas) une chaine vide "" ne vaut pas un null (ou un false)
Hors ligne
Pages: 1