如何将值发送到视图?

时间:2014-07-09 16:10:39

标签: php zend-framework2

我正在尝试使用此代码向视图(布局+部分)发送一些值(所有这些变量都有1作为值)。

$this->layout()->setVariables(array(
    'nbTotalLignes'     => $nbTotalLignes,
    'nbTotalPages'      => $nbTotalPages,
    'comptes'           => $comptes,
    'numPageCourante'   => $numPageCourante,
    'nbComptesAffiches' => $nbComptesAffiches,
    'comptesAffiches'   => $comptesAffiches,
));

但是当我尝试使用此代码echo (isset($this->nbTotalLignes)?1:0在视图中显示这些内容时,我得到0。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

每个视图都有自己的范围。 $this->layout()->setVariables设置布局的变量,而不是当前的操作视图。

将vars发送到当前操作视图,您有两个选项:

return array('var1'=>1);

zend会自动将其转换为viewmodel。或

$view = new ViewModel();
$view->setVariables(array('var1'=>1))
return $view;

通过这种方法,您还可以设置不同的模板

$view->setTemplate('a different template path'); 

并选择不渲染布局

$view->setTerminal(true)