Php ZF2重定向到带有控制器操作的路由并获取参数
因此,我试图将代码重定向到控制器中的另一个操作。该视图操作工作正常。但每次重定向代码运行时,它都会将我重定向到 我现在不知道我做错了什么Php ZF2重定向到带有控制器操作的路由并获取参数,php,zend-framework2,Php,Zend Framework2,因此,我试图将代码重定向到控制器中的另一个操作。该视图操作工作正常。但每次重定向代码运行时,它都会将我重定向到 我现在不知道我做错了什么 $params = ['controller' => 'SalesOrder', 'action' => 'view', ]; $options = ['query' => ['id' => (string) $orderId]]; return $this->redire
$params = ['controller' => 'SalesOrder',
'action' => 'view',
];
$options = ['query' => ['id' => (string) $orderId]];
return $this->redirect()->toRoute('Salesorder', $params, $options);
我的moduleconfig看起来像这样
'Salesorder' => array(
'type' => 'Literal',
'options' => array(
'route' => '/salesorder',
'defaults' => array(
'__NAMESPACE__' => 'Backend\Controller',
'controller' => 'SalesOrder',
'action' => 'new',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '[/:action]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'action' => 'new'
),
),
),
),
),
请原谅,我不能发表评论,因为我没有足够的声誉,但这可能会导致您找到一个解决方案: 首先,修复对以下对象的toroute函数调用:
return $this->redirect()->toRoute('Salesorder', array('id'=> (string) $orderId));
然后将路由规范固定到以下位置:
'Salesorder' => array(
'type' => 'segment',
'options' => array(
'route' => '/MODULE_NAME/SalesOrder/new/:id[/]',
'constraints' => array(
'id' => '[a-zA-Z0-9_-]*'
),
'defaults' => array(
'controller' => 'MODULE\Controller\SalesOrder',
'action' => 'new',
),
),
),
您的子路由是
salesforder/default
,请尝试在那里重定向,而不是直接重定向到URL$这个->重定向()->toUrl(');返回$this->redirect()->toRoute('ControllerName',array('action'=>'your_action','key'=>$key));应该有用