1

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

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

4

2 回答 2

0

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

于 2013-07-18T16:24:13.233 回答
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;
}

您也可以传递参数

于 2013-02-15T11:57:03.833 回答