在Zend Framework 2中,我想通过以下方式在ZF1中在同一个控制器中将一个参数数组从一个动作传递到另一个动作:
$this->_helper->redirector->gotoSimple('foo', null, null, $params);
并在fooAction中:
$params = $this->_request->getParams();
在ZF2中,尝试了我在这里看到的各种答案,我想出了以下内容:
$this->redirect()->toRoute('home/default', array(
'controller' => 'client',
'action' => 'foo',
'param' => 'bar'),
array('param' => 'bar'));
(尝试toRoute()的$ params和$ options参数)
并在fooAction中:
$param = $this->getEvent()->getRouteMatch()->getParams();
或
$param = $this->params()->fromRoute());
没有对我有用。有没有一种简单的方法来实现我想要的东西(使用重定向传递参数)或者我应该使用容器,会话甚至全局变量的路径?
答案 0 :(得分:0)
您可以使用转发插件:
http://framework.zend.com/manual/2.0/en/modules/zend.mvc.plugins.html#the-forward-plugin
public function someAction()
{
$returnValue = $this->forward()->dispatch('application/controller/index', array(
'action' => 'other'
));
return $returnValue;
}
public function otherAction()
{
return 99;
}
您也可以传递参数
答案 1 :(得分:0)
最后,我所做的不是使用路由参数,而是使用查询参数,因为我使用的参数与路由无关。这解决了这个问题。