当前位置:  开发笔记 > 编程语言 > 正文

在Zend Framework中将变量发送到布局

如何解决《在ZendFramework中将变量发送到布局》经验,为你挑选了3个好方法。

在我的项目中,我有许多动态元素,每个页面都是一致的.我已将这些放在layout.phtml中

我的问题是:如何从控制器向我的布局发送变量?

如果我想从我的控制器发送东西,我可以使用:

$this->view->whatever = "foo";

并在视图中接收它

echo $this->whatever;

我无法弄清楚如何对我的布局做同样的事情.也许有更好的方法解决这个问题?



1> Tim Fountain..:

布局一个视图,因此分配变量的方法是相同的.在您的示例中,如果您要回显$ this->布局中的任何内容,您应该看到相同的输出.

一个常见问题是如何将在每个页面上使用的变量分配给布局,因为您不希望在每个控制器操作中复制代码.一个解决方案是创建一个插件,在渲染布局之前分配这些数据.例如:

getView();

      $view->whatever = 'foo';
   }
}

然后使用前端控制器注册此插件,例如

Zend_Controller_Front::getInstance()->registerPlugin(new My_Layout_Plugin());


我在哪里放这个插件(哪个文件夹?)以及我在哪里设置`Zend_Controller_Front :: getInstance() - > registerPlugin(new My_Layout_Plugin());`?

2> 10us..:

不使用帮助器或插件做:

Zend_Layout::getMvcInstance()->assign('whatever', 'foo');

在此之后,您可以在布局中使用以下内容:

layout()->whatever; ?>

这将打印"foo".


对于简单的作业,这是一个非常优雅的解决方案!爱它.1+

3> 小智..:

我有一个基本控制器,所有其他控制器都扩展.

所以我有一个控制器......

view->foo = "bar";
  }
}

并在布局和/或视图中

foo ?>

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有