When trying to assemble a route by calling
return $this->redirect()->toRoute('application');
in my controller I get the following exception:
Zend\Mvc\Router\Exception\RuntimeException
File: library\Zend\Mvc\Router\Http\Part.php:181
Message: Part route may not terminate
the route is configures as following:
'routes' => array(
'application' => 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(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'child_routes' => array(
'wildcard' => array(
'type' => 'Wildcard',
),
),
),
),
Is it required to have the controller/action route as a child route from the route /?
when I configure it like that it works. When I use the route [/[:controller[/[:action[/]]]]] (with optional leading slash) it works for some assemblies but not for all and they’re all called in the same way described above, partially from other modules.
The error already tells you the problem: You’re missing a
may_terminateoption in your current route. Therefore, you can’tshort-circuitit by return theredirect()plugin return value.Just add a
to your route’s config (probably to all route configurations).