Zend框架2方法路由


Zend framework 2 method routing

我想在Zend框架2 (v2.3.1)的路由器配置中分离表单显示和处理:

        'login' => array(
            'type' => 'Literal',
            'options' => array(
                'route' => '/login',
            ),
            'child_routes' => array(
                'show' => array(
                    'type' => 'method',
                    'options' => array(
                        'verb' => 'get',
                        'defaults' => array(
                            'controller' => 'Main',
                            'action' => 'loginShow'
                        ),
                    ),
                ),
                'process' => array(
                    'type' => 'method',
                    'options' => array(
                        'verb' => 'post',
                        'defaults' => array(
                            'controller' => 'Main',
                            'action' => 'loginProcess'
                        ),
                    ),
                ),
            ),
        ),

不知何故,这不起作用,我得到以下错误消息:

部分路由不能终止

如果使用相同的URL(路由),但使用两种不同的操作(取决于请求方法)来显示和处理登录表单,那就太好了。

非常感谢你的帮助!

您需要添加may_terminate = true,这样应该可以解决您的问题。

     'login' => array(
        'type' => 'Literal',
        'options' => array(
            'route' => '/login',
        ),
        'may_terminate' => true,
        'child_routes' => array(
            'show' => array(
                'type' => 'method',
                'options' => array(
                    'verb' => 'get',
                    'defaults' => array(
                        'controller' => 'Main',
                        'action' => 'loginShow'
                    ),
                ),
            ),
            'process' => array(
                'type' => 'method',
                'options' => array(
                    'verb' => 'post',
                    'defaults' => array(
                        'controller' => 'Main',
                        'action' => 'loginProcess'
                    ),
                ),
            ),
        ),
    ),