Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-10-2012 15:12:57

cybercandyman
Membre
Date d'inscription: 07-05-2008
Messages: 22

Zend\Mvc\Router\Http\Query ...

Bonjour à tous,

je suis confronté à un soucis sur une route qui contient une partie query. voici la définition de la route :

Code:

[lang=php]
            'application' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/application',
                    'defaults' => array(
                        '__NAMESPACE__' => 'Application\Controller',
                        'controller'    => 'Index',
                        'action'        => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    '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(
                                
                            ),
                        ),
                        'may_terminate' => true,
                        'child_routes' => array(
                            'query'=>array("type"=>"query")
                        )
                    ),
                ),
            ),

Autant dire que pour le test j'ai juste rajouter sur la route de base la partie query tout à la fin.
Avec l'aide de vue url, pas de probléme les urls sont bien générées :

Code:

[lang=php]
<a href="<?php     echo $this->url("application/default",array("controller"=>"index","action"=>"test1")); ?>">test1</a><br />
<a href="<?php     echo $this->url("application/default/query",array("controller"=>"index","action"=>"test2","param1"=>"value1")); ?>">test2</a><br />

en testant simplement dans l'action appelé test1 et test2 avec le code suivant

Code:

[lang=php]
$rm = $this->event->getRouteMatch();
\Zend\Debug\Debug::dump(($rm->getMatchedRouteName()));
\Zend\Debug\Debug::dump(($rm->getParams()));

la route application/default/query n'est jamais matché, et du coup, je ne peut pas récupérer les arguments de l'url. 

Qu'en pensez vous ??? merci

Hors ligne

 

#2 19-10-2012 19:34:39

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

Re: Zend\Mvc\Router\Http\Query ...

Tu n'as plus besoin de récupérer le routeMatch via l'event, tu peux directement utiliser le plugin params :

$this->params('toto');

Le truc c'est que ceci ne récupère que les paramètres matchés d'une route, hors là ce sont des paramètres qui proviennent de la partie query. Il faut donc que tu fasses ceci :

$this->params()->fromQuery('param1');

Hors ligne

 

#3 20-10-2012 12:49:27

cybercandyman
Membre
Date d'inscription: 07-05-2008
Messages: 22

Re: Zend\Mvc\Router\Http\Query ...

Ah merci bakura, c'est quand même assez déroutant entre les nouveautés, les potentiels bogs et la doc qui est pas encore tip top.

merci ++

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