[英]Redirecting for child routes in ZF2 throws an error
我在zend Framework 2中的子路由上重定向时遇到问题。我可以访问控制器和操作,但是在重定向它时会抛出一个错误,提示我缺少参数“ id”。
'admin' => array(
'type' => 'segment',
'options' => array(
'route' => '/admin[/][:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Admin\Controller\Admin',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'settings' => array(
'type' => 'Segment',
'may_terminate' => true,
'options' => array(
'route' => '/general[/][:action][/][:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Admin\Controller\Settings\General',
'action' => 'index',
),
),
),
),
),
我已将重定向重定向至如下所示的路线,
return $this->redirect()->toRoute('admin/settings');
但这会引发错误,
Missing parameter "id"
由于错误消息暗示您需要添加“ id”参数。 您可以使用类似的参数进行重定向。
return $this->redirect()->toRoute('admin', array('action'=>'settings', 'id' => $id));
您没有向我们显示您的Controller动作,但我假设“设置”是您的管理模块中的动作。
在这一点上,我真的看不到admin / settings函数需要什么样的ID,或者只是尝试添加0或1来首先尝试用于测试目的的路由。
路由匹配方法似乎并不“消耗”路由的父节点 。
更改子路径以将语法的/ admin部分包括在内
/ admin / settings / general [/] [:action] [/] [:id]
要么
/ admin / settings [/] [:action] [/] [:id]
应该允许$this->redirect()->toRoute('admin/settings');
上班。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.