我想在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'
),
),
),
),
),