1

尝试通过调用组装路线时

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[/]]]]](带有可选的前导斜杠)时,它适用于某些程序集,但不适用于所有程序集,它们都以上述相同的方式调用,部分来自其他模块。

4

1 回答 1

3

该错误已经告诉您问题所在:您may_terminate在当前路线中缺少一个选项。因此,您不能通过short-circuit返回redirect()插件返回值来实现。

只需添加一个

'may_terminate' => true

到您的路线配置(可能到所有路线配置)。

于 2012-08-22T07:54:20.497 回答