3 votes

Zend Framework 2 : plusieurs routes vers une même action

Existe-t-il une meilleure solution pour faire ce qui suit dans Zend Framework 2 :

J'ai besoin que ces deux URL mènent à une seule action - aide/section/5 et aide/section.php?id=5.

Je pense que cette méthode est trop compliquée :

        'helpSection' => array(
            'type' => 'Zend\Mvc\Router\Http\Segment',
            'options' => array(
                'route'    => '/help/section/:id',
                'defaults' => array(
                    'controller' => 'Application\Controller\Help',
                    'action'     => 'section',
                ),
            ),
        ),
        'helpSection2' => array(
            'type' => 'Zend\Mvc\Router\Http\Segment',
            'options' => array(
                'route'    => '/help/section.php',
                'defaults' => array(
                    'controller' => 'Application\Controller\Help',
                    'action'     => 'section',
                ),
            ),
            'child_routes'  => array(
                'query' => array(
                    'type' => 'Zend\Mvc\Router\Http\Query',
                    'options' => array(
                        'defaults' => array(
                            'id' => ':id'
                        )
                    )
                ),
            ),
        ),

0voto

Sam Points 12735

Je n'ai pas testé, mais cela pourrait fonctionner... Il devrait correspondre à ce qui suit :

  • /aide/section
  • /help/section?queryString
  • /help/section.php
  • /help/section.php?queryString
  • /aide/section/1
  • /help/section/1?queryString

ce serait la configuration :

'type' => 'segment',
'options' => array(
    'route' => '/help/section[(.php|/:id)]',
    'defaults' => array(
        'controller' => '...',
        'action' => '...'
    ),
    'constraints' => array(
        'id' => '[0-9]+'
    )
),
'may_terminate' => true,
'child_routes' => array(
    'query' => array(
        'type' => 'query'
    )
)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X