1

Zend Framework 2では、次の方法でZF1で行ったのと同じコントローラー内で、あるアクションから別のアクションにパラメーターの配列を渡したいと思います。

$this->_helper->redirector->gotoSimple('foo', null, null, $params);

とfooActionで:

$params = $this->_request->getParams();

ZF2では、ここSOで見たさまざまな答えを試して、次のことを思いつきました。

$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

転送プラグインを使用できます。

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 に答える
0

結局、私が行ったことは、ルートパラメータを使用する代わりに、クエリパラメータを使用することでした。これは、ルートに関連しない場所で使用したパラメータだからです。それで問題は解決しました。

于 2013-07-18T16:24:13.233 に答える