Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-06-2014 09:11:24

jean
Membre
Date d'inscription: 25-08-2008
Messages: 107

[résolu] URL view helper et child route de type segment

Tout d'abord, je sais qu'il vaut mieux utiliser les routes literal que les segment...

Je voulais juste mettre des liens dans les vues du zf2-tutorial et je n'arrivais pas à appeler une child route depuis $this->url('test', array('controller' =>'index', 'action' => 'monaction'));

Ma route :

Code:

'router' => array(
      'routes' => array(
          'test' => array(
              'type'    => 'Literal',
              'options' => array(
                  'route'    => '/test',
                  'defaults' => array(
                      '__NAMESPACE__' => 'Test\Controller',
                      'controller'    => 'Index',
                      'action'        => 'index',
                  ),
              ),
              'may_terminate' => true,
                'child_routes' => array(
ici=>           '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(
                          ),
                      ),
                  ),
              ),
          ),
      ),
  ),

Je voulais juste créer une URL (dans le zf2_tutorial) et utiliser le ViewHelper pour faire le lien avec une action de l'index controller.

/test/index/mon-action

Il est important d'ajouter le nom de la child route à la route, séparée par un /. C'est logique si les child route sont de type litéral, mais dans le cas d'une child route de type segment, il n'existe pas de nom de child route... alors il faut indiquer 'default' :

Code:

echo $this->url( 'test/default',  array('action' => 'mon-action', 'controller' => 'index'));

Si on ne le fait pas, le view helper ne tient pas compte de la child route et reste obstinément sur la route /test.
Bref, pas évident à détecter....

Hors ligne

 

#2 17-06-2014 09:24:00

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [résolu] URL view helper et child route de type segment

alors enfait tu doit mettre default car ta child-route s'appel default wink

Code:

[lang=php]
'child_routes' => array(
      'default' => array(
                      'type'    => 'Segment',

si tu l'appel autrement, par exemple toto, tu pourra bien appeler test/toto

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