我從控制器這樣的返回數據:ZF2:如何傳播控制器返回到佈局模板?
/**
* Password request sent
*
* @return array
*/
public function passwordRequestSentAction()
{
return array(
'foo' => $this->bar,
);
}
但$this->foo
是layout.phtml內空,即使它的正確內控制器/ passwordRequestSent.phtml
我不得不創建執行postDispatch方法我的抽象控制器並鏈接到attachDefaultListeners()並在postDispatch中執行此操作:
$e->getViewModel()->setVariables($e->getResult()->getVariables());
這真的是w ay去?我只是想分享我的所有變量,不管它的佈局或頁面模板。
出於好奇 - 你爲什麼要這麼做? – Fge 2012-07-15 23:04:05
@Fge我用佔位符解決了大部分需求。但我仍然有時可以看到需要。例如,我的項目中的每個.phtml都會傳遞一個$ messages數組並將它發送給一個幫助器,如$ this-> showMessages($ messages)。我在整個視圖腳本中都有一些樣板代碼,爲了減少它,我不得不開始使用partials(一個可行的解決方案,但我仍然需要將它稱爲每個視圖腳本),或者使佈局具有樣板代碼。 – Matsemann 2012-07-16 07:03:18
是的,我在佈局頁眉中有一些邏輯,我想在所有頁面上分享。我想讓所有頁面上的所有代碼和邏輯都處於佈局狀態。不要在每個phtml文件中包含一些菜單標題。 – 2012-07-16 12:20:19