如何将参数添加到控制器重定向?

时间:2012-12-30 19:33:01

标签: redirect parameters controller action zend-framework2

在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());

没有对我有用。有没有一种简单的方法来实现我想要的东西(使用重定向传递参数)或者我应该使用容器,会话甚至全局变量的路径?

2 个答案:

答案 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)

最后,我所做的不是使用路由参数,而是使用查询参数,因为我使用的参数与路由无关。这解决了这个问题。