2016-04-06 2 views
0

私は同じものを探して、それについて何か答えを得ましたが、助けにはなりませんでした。次のようにzf2のModule.phpから見るためにデータを送る方法

私が試したものの方法は以下のとおりです。

1)onBootstrap($ e)の機能で

$e->getViewModel()->setVariable('test_variable', 'Hello World!'); 
     //or 
$e->getViewModel()->test_variable = 'Hello World!'; 

2) 私はModule.phpで関数を作成

function boforeDispatch(MvcEvent $event) { 
    $event->getViewModel()->setVariable('test_variable', 'Hello World!'); 
    //or 
    $event->getViewModel()->test_variable = 'Hello World!'; 
} 

といいます私はビュー

echo $test_variable; 

にしようとしたときonBootstrap($ e)の関数内の関数

​​

それはundefined variable test_variable in ...エラーにすべての時間を提供します。

+0

は、あなたがの$ this - >レイアウト(のようにアクセスしようとした持っている派遣) - > test_variable – KiwiJuicer

+0

はい私はすでにそれを使用しています。私が求めているのはecho $ test_variableです。ちょうど私たちがコントローラから送るものと同じように –

答えて

0

代わりにイベント(MvcEvent::EVENT_RENDER)をレンダリングしてみてください:

public function onBootstrap($event){ 
    $application = $event->getApplication(); 
    $eventManager = $application->getEventManager(); 
    $events->attach(MvcEvent::EVENT_RENDER, array($this, 'addVariablesToViewModel'), 100); 
} 

public function addVariablesToViewModel($event) 
{ 
    $viewModel = $this->getEvent()->getViewModel(); 
    $viewModel->setVariables(array(
     'key' => 'value', 
    )); 
} 

あなたのビューモデルは、(前)にはまだおそらく利用できない

関連する問題