尝试通过调用
组装路线时return $this->redirect()->toRoute('application');
在我的控制器中我得到以下异常:
Zend\Mvc\Router\Exception\RuntimeException
File: library\Zend\Mvc\Router\Http\Part.php:181
Message: Part route may not terminate
路由配置如下:
'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',
),
),
),
),
是否需要将controller/action
路由作为路由/
的子路由?
当我配置它就像它的工作原理。当我使用路由[/[:controller[/[:action[/]]]]]
(带有可选的前导斜杠)时,它适用于某些程序集但不适用于所有程序集,它们都以上述方式调用,部分来自其他模块。
答案 0 :(得分:3)
错误已经告诉您问题:您在当前路线中缺少may_terminate
选项。因此,您不能short-circuit
返回redirect()
插件返回值。
只需添加一个
'may_terminate' => true
到您的路线配置(可能是所有路线配置)。