Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-11-2011 22:05:28

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

[zf2.0.0beta1] : paramètres dans l'url

Bonjour,

J'essaie de générer une url avec un param 'toto':

$params['controller'] = $module.'-'.$controller;
$params['action'] = $action; 
$params['toto'] = '99';     
$url = $this->view->url('default',$params,array(),FALSE);

Mais l'url générée ne contient aucun paramètre toto !

Ensuite j'essaie de récupérer le parametre 'toto' de l'url /<namespace-controller>/<action>/toto/99

Et je tombe là dessus:

"An error occurred processing this page; please try again later.

Invalid exception found"

Comment peut-on gérer les paramètres de l'url?


David

Hors ligne

 

#2 17-11-2011 00:37:33

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [zf2.0.0beta1] : paramètres dans l'url

T'es où la ? Dans le contrôleur ou dans la vue ?

Hors ligne

 

#3 17-11-2011 11:04:03

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Je suis dans un view helper:

Code:

namespace Mix\View\Helper;

use Zend\View\Helper\AbstractHelper,
    Zend\View\Helper\Url;

class SimpleUrl extends AbstractHelper {
    public function __invoke($module='application',$controller='index',$action='index',$params=array()) {
$params['controller'] = $module.'-'.$controller;
$params['action'] = $action;    
$params['toto'] = '99';      
            $url = $this->view->url('default',$params,array(),FALSE);
        }
        return $url;
}
}

Hors ligne

 

#4 17-11-2011 13:42:04

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [zf2.0.0beta1] : paramètres dans l'url

As-tu bien initialisé l'aide de vue Url dans la classe Module ?

Hors ligne

 

#5 17-11-2011 14:17:21

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Oui ce helper est initialisé dans la config:

Code:

'view-loader' => array('parameters' => array(
                'map' => array(
                    'simpleurl' => 'Mix\View\Helper\SimpleUrl',
                ),
            )),

D'ailleurs lorsque je commente
//$params['toto'] = '99';
et que je l'appelle dans la vue par
$this->simpleUrl('candidat,'catalogue','recherche');     

Ca marche parfaitement bien.

C'est juste l'ajout de paramètres qui n'est pas pris en compte.

Dernière modification par booradley (17-11-2011 14:20:50)

Hors ligne

 

#6 17-11-2011 18:59:02

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [zf2.0.0beta1] : paramètres dans l'url

Haaa mais je crois savoir pourquoi ! A l'heure actuelle je suppose que tu utilises la route "Segment" ? Elle ne supporte pas encore les wildcards (donc les paramètres controller/action/param1/valeur1/param2/valeur2...). Normalement je sais pas ou ça en est mais la solution ce sera de faire un child_routes et d'ajouter la route "Wildcard".

Ca devrait pas tarder à fonctionner, ça fonctionne peut-être même déjà smile.

PS : juste, quand tu vas mettre à jour ZF2 avec le dernier dépôt, ton code marchera plus, y'a quelques modifications à faire au niveau des modules qui les rends un peu plus simple à utiliser.

Hors ligne

 

#7 17-11-2011 20:23:51

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Oui effectivement j'utilise la route Segment.
Je vais attendre la correction soit dispo.
Merci bakura.

Hors ligne

 

#8 17-11-2011 21:11:03

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [zf2.0.0beta1] : paramètres dans l'url

Sinon, je te conseille vraiment d'installer IRC (si t'es sous Mac => Textual, le meilleur client IRC du monde big_smile), et va sur le channel zftalk.2 sur le serveur Freenode. T'as constamment tous les développeurs du framework, tu pourras poser tes questions, et toutes les 2 semaines il y a le meeting ZF2 (les dates sont sur le wiki) ou ça discute de l'avancée des composants. C'est toujours super intéressant pour suivre l'avancée du projet smile.

Hors ligne

 

#9 17-11-2011 22:56:19

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Je viens d'installer ca , merci pour l'info

David

Hors ligne

 

#10 23-11-2011 23:03:47

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Bonjour,
Je reviens sur ce pb de paramètres dans l'url.
J'apelle l'url :/membre-identification/login/titi/9/rer/pouf

Dans mon controlleur j'ai:

Code:

$request = $this->getRequest();        
//$request = new \Zend\Http\PhpEnvironment\Request();
//$parameters = new \Zend\Stdlib\Parameters();
//\Zend\Debug::dump($parameters);
\Zend\Debug::dump($request->query()->toArray()); // => tableau vide !
\Zend\Debug::dump($request->query()->get('titi')); // => null !

Je ne parviens pas à récupérer les paramètres de l'url....

Hors ligne

 

#11 27-11-2011 11:31:55

akrogames
Membre
Date d'inscription: 22-03-2010
Messages: 27

Re: [zf2.0.0beta1] : paramètres dans l'url

Bonjour booradley,

As-tu réussi a résoudre ton problème de paramètre ? Car j'ai le même problème que toi. J'aimerai faire passer simplement des paramètres dans l'URL mais mon ViewHelper ne doit pas être bon.

Où est-ce que vous avez vu le type de route nommé Segment ?

D'avance merci

Dernière modification par akrogames (27-11-2011 11:59:23)

Hors ligne

 

#12 27-11-2011 15:15:48

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Je n'ai toujours pas résolu ce pb.
Je pense que ma route n'est pas bonne.

Tu peux lire le sujet "routage" de ce forum
http://www.z-f.fr/forum/viewtopic.php?id=7086

Hors ligne

 

#13 27-11-2011 22:10:32

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [zf2.0.0beta1] : paramètres dans l'url

J'ai pas trop réessayé (pour l'instant je me suis rabattu sur une solution "à la noix" dans laquelle j'écris à la main dans la vue les url (avec pour les variables GET la forme "à l'ancienne" : /controller/index?var1=val1&var2=val2, et là on peut bien récupérer les valeurs).

Par contre, pensez bien à mettre très régulièrement à jour votre code avec le repo, ne serait-ce que les modules qui ont connu quelques améliorations depuis la bêta 1. Le routeur aussi a connu pas mal de changements !

Hors ligne

 

#14 29-11-2011 12:16:02

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Voici la bonne route qui m'a été donnée par jurians sur l'irc:
https://gist.github.com/758515e55ae3fb397350

De plus :
- $this->getRequest()->query() permet de récupérer les paramètres dans l'url du type ?param1=value1

Si on veut récupérer des paramètres dans l'url du type /param1/value1 il faut utiliser:
- $this->getEvent()->getRouteMatch()->getParams()

Voila
++

Hors ligne

 

#15 29-11-2011 14:40:50

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

Ce qu'il faut aussi savoir, quand on utilise la route suivante:

Code:

'default' => array(
'type' => 'segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]+',
'action' => '[a-zA-Z][a-zA-Z0-9_-]+',
),
'defaults' => array(
'controller' => 'index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'wildcard' => array(
'type' => 'wildcard'
),
),
);

C'est qu'on doit nommer la route 'default/wildcard' (et non 'default') lors de l'appel du plugin url par exemple:

Code:

$params['controller'] = $namespace.'-'.$controller;
$params['action'] = $action;
echo $this->plugin('url')->fromRoute('default/wildcard',$params);

Hors ligne

 

#16 29-11-2011 20:58:31

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: [zf2.0.0beta1] : paramètres dans l'url

Ok, merci beaucoup ! La syntaxe est quand même bizarre pour $this->getEvent()->getRouteMatch()->getParams() big_smile. C'est un peu verbeux quand même yikes...

Hors ligne

 

#17 06-12-2011 16:16:40

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: [zf2.0.0beta1] : paramètres dans l'url

J'ai remonté ce bug a DASPRiD:
http://framework.zend.com/issues/browse/ZF2-112
Il n'a pas de solution pour le moment.
On peut commenter la route par default en attendant:
/*
'defaults' => array(
'controller' => 'index',
'action' => 'index',
),
*/

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