Ответ 1
Из здесь:
$slug = $this->getEvent()->getRouteMatch()->getParam('slug');
Дополнительная документация здесь, но выглядит немного неполной.
У меня есть Zend Framework 1, и я создал некоторые приложения с этой инфраструктурой.
Теперь я экспериментирую с Zend Framework 2, но я застрял на параметрах url. Я настроил свою маршрутизацию следующим образом:
// 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',
),
),
),
),
),
),
Как вы можете видеть, я попытался сделать переменную slug. Как я могу получить доступ к этой переменной?
Из здесь:
$slug = $this->getEvent()->getRouteMatch()->getParam('slug');
Дополнительная документация здесь, но выглядит немного неполной.
Или просто:
$slug= $this->params('slug');
Почему не этот:
$this->params()->fromRoute('slug');
вы можете просто использовать это, а
$this->params()->fromQuery('slug',null);
$this->params()->fromPost('slug',null);
Я надеюсь, что это сработает...