ZF 中布局中访问控制的操作变量


Access Controller's action variable in layout in ZF

我想在 zend 框架中访问布局中的变量,我该怎么做。我搜索了很多,但找不到任何对我有用或有帮助的东西。以下是我已经尝试过的链接,因此管理员请不要将此问题标记为重复问题。

谢谢。。

Zend Framework 2 - 布局和变量

ZF2 布局的门禁控制器操作变量

塞纳里奥

我在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
}

我得到了我的问题的解决方案

init 函数IndexController's编写以下代码

$this->_helper->layout()->myvar = $someValue;

并通过此代码在布局中访问它

$this->placeholder('Zend_Layout')->myvar;

对于他/她应用程序中的每个控制器,必须这样做。否则将得到有关未定义变量的错误。

参考:

http://framework.zend.com/manual/1.12/en/zend.layout.quickstart.html

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