Pages

2013年9月27日金曜日

ZendFramework2 Layoutファイルにコントローラーから値をアサインする時

layout じゃなくて中身(コンテンツ?)のテンプレートファイル(.phtml)だと、アクションの最後で

return new ViewModel(array(
    'form'      => $form,
    'param1' => $param1,
));

でOKなんですが、これ layout の.phtmlファイルでもアサインされてると思ってたらされてないようです。。

という事でコントローラーからアサインする時には 中身 と レイアウト で別にアサインする必要があるようです。

具体的な方法はこんな感じです。

$this->layout()->param1 = $param1;
$this->layout()->param2 = $param2;

$this->layout()->setVariable('param1', $param1);
$this->layout()->setVariable('param2', $param2);

$this->layout()->setVariables(array(
    'param1' => $param1,
    'param2' => $param2,
));

※アクション内に記述する内容です。

0 件のコメント:

コメントを投稿

Followers