Php 访问控制器';ZF中布局中的s动作变量

Php 访问控制器';ZF中布局中的s动作变量,php,zend-framework,Php,Zend Framework,我想在zend框架中访问layout中的变量,如何才能做到这一点。我搜索了很多,但没有找到任何对我有用的东西。下面是我已经尝试过的链接,因此管理员请不要将此问题标记为重复问题 谢谢 Senario 我在layout.phtml中有一个链接,我想在有条件的基础上显示它。就像我的网站的一些用户看不到那个链接,但其他人可以。这种情况来自我拥有的数据库,但我不知道如何在layout.phtml 示例 <?php if($this->check == true) {?><a h

我想在zend框架中访问layout中的变量,如何才能做到这一点。我搜索了很多,但没有找到任何对我有用的东西。下面是我已经尝试过的链接,因此管理员请不要将此问题标记为重复问题

谢谢

Senario

我在
layout.phtml
中有一个链接,我想在有条件的基础上显示它。就像我的网站的一些用户看不到那个链接,但其他人可以。这种情况来自我拥有的数据库,但我不知道如何在
layout.phtml

示例

<?php if($this->check == true) {?><a href="#">This Link</a><?php } ?>


如果
$this->check==true,则显示链接,否则不显示链接。

将变量从操作传递到视图,如

$this->view->check = true;
然后在视图中访问它,如
$this->check
并执行检查

if($this->check){
  //Do something
}
else{
  //Do something
}

我找到了问题的解决办法

IndexController的
init函数中编写以下代码

$this->_helper->layout()->myvar = $someValue;
并通过此代码在布局中访问它

$this->placeholder('Zend_Layout')->myvar;
对于他/她在应用程序中拥有的每个控制器,必须这样做。否则将得到一个关于未定义变量的错误

参考资料:


第一个代码清单的第15行…

我有20多个操作/视图,如何在所有这些操作/视图中传递变量。另外,链接在布局中而不是视图中如何使该链接在任何其他视图中不可见……您必须从每个操作中传递,并在视图的相应布局中隐藏。