我正在尝试将一个变量从主布局传递给视图,但我没有运气。
layout.phtml
$this->hadMessages = true;
myview.phtml
var_dump($this->hadMessages);
var_dump
始终以NULL
返回。从我所看到的,布局也是一个视图,所以它应该在相同的上下文中,对吧?
我正在使用Zend Framework 1.11。
答案 0 :(得分:3)
在视图之后呈现布局,这就是为什么这不起作用。根据您尝试的操作,您可以在控制器插件的帮助下实现所需的效果。
答案 1 :(得分:0)
无法将变量从布局传递到视图,因为根据MVC模式,您不应该有这样的任务。更好的布局包含一些消息或不应该在控制器或引导程序级别决定,而不是在布局本身。
这意味着在控制器中,您应该进行所有必需的分配,例如$this->view->layout_messages_shown = true
,并在布局和视图中获取此变量值,如echo ( $this->layout_messages_shown ? "messages shown" : "messages hidden" )