web-dev-qa-db-fra.com

ZF2: obtenir les paramètres d'URL dans le contrôleur

J'ai expérimenté Zend Framework 1 et j'ai construit des applications avec ce framework.

Maintenant, j'expérimente Zend Framework 2, mais je suis bloqué sur les paramètres d'URL. J'ai configuré mon routage comme ceci:

// Setup for router and routes
'Zend\Mvc\Router\RouteStack' => array(
    'parameters' => array(
        'routes' => array(
            'default' => array(
                'type'    => 'Zend\Mvc\Router\Http\Segment',
                'options' => array(
                    'route'    => '/[:slug]',
                    'constraints' => array(
                    'slug' => '[a-zA-Z][a-zA-Z0-9_\/-]*'
                    ),
                'defaults' => array(
                    'controller' => 'Htmlsite\Controller\BootController',
                    'action'     => 'index',
                    'slug' => 'home'
                    ),
                ),
            ),
        'home' => array(
            'type' => 'Zend\Mvc\Router\Http\Literal',
            'options' => array(
                'route'    => '/',
                'defaults' => array(
                    'controller' => 'Htmlsite\Controller\BootController',
                    'action'     => 'index',
                    ),
                ),
            ),
        ),
    ),
),

Comme vous pouvez le voir, j'ai essayé de créer un slug variable. Comment puis-je accéder à cette variable?

25
koenHuybrechts

De ici :

$slug = $this->getEvent()->getRouteMatch()->getParam('slug');

Plus de documentation ici , mais cela semble plutôt incomplet.

26
bububaba

Ou simplement:

$slug= $this->params('slug');
55
Al-Punk

Pourquoi pas celui-ci:

$this->params()->fromRoute('slug');
26
Tomasz Kuter

vous pouvez aussi simplement l'utiliser

$this->params()->fromQuery('slug',null);
$this->params()->fromPost('slug',null);

J'espère que ça marche...

19
Kdecom