在Zend框架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'));
(嘗試都到$ params和$ options參數toRoute的S())
和fooAction:
$param = $this->getEvent()->getRouteMatch()->getParams();
或
$param = $this->params()->fromRoute());
沒有爲我工作。有沒有簡單的方法來實現我想要的(用重定向傳遞參數)還是應該使用容器,會話甚至全局變量的路線?
這應該工作得很好,你確定你的路線設置正確嗎? 您是否確定您的控制器實現了InjectApplicationEvent(或擴展了ZF2 Abstract控制器) – Andrew
不,我沒有在我的路線中設置參數。如果我這樣做,它確實有效。但這意味着我必須爲每個單獨的行動建立一個路徑。 ZF1的美妙之處在於你可以使用一個全部(段)路線,並在你的控制器中設置單個參數。 – tihe
但是你正在使用toRoute(),顯然這需要一個工作路線;) – Andrew