Возникла трудность с пониманием в работе с child_routes в zf2. Приведу пример:
'router' => array(
'routes' => array(
'backend' => array(
'type' => 'Literal',
'options' => array(
'route' => '/backend',
'defaults' => array(
'__NAMESPACE__' => 'Backend\Controller',
'controller' => 'Auth',
'action' => 'login',
),
),
'may_terminate' => true,
'child_routes' => array(
'admin' => 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(
),
),
),
),
),
),
),
Это роут описывает работу админки теоретического сайта. По умолчанию, когда мы заходим на http://domen/backend мы попадаем в контроллер Auth и вызываем в нем метод login.
Что бы использовать другие методы внутри родительского роута /backend нужно сделать следующее:
$this->url('backend/admin', array(
'controller' => 'auth',
'action' => 'authenticate'
));
При этом у нас в первом параметре хелпера передается: родительский_роут/child_роут, а потом уже как обычно все остальные параметры.