所以我一直在寻找本教程:使用Zend视图对象的持久存储
http://devzone.zend.com/article/3412
和它说,
“在Zend框架的MVC,在大多数情况下,占位符没有意义;由于默认情况下在所有控制器和布局之间使用相同的视图对象,因此可以简单地将视图变量用作持久存储机制。“
有人可以向我解释这个“持久存储机制”的工作吗?我试着去一个视图文件,设置$这个 - >检测=“东西”,然后去另一个视图文件和echo $这个 - >测试
但一无所获....
所以我一直在寻找本教程:使用Zend视图对象的持久存储
http://devzone.zend.com/article/3412
和它说,
“在Zend框架的MVC,在大多数情况下,占位符没有意义;由于默认情况下在所有控制器和布局之间使用相同的视图对象,因此可以简单地将视图变量用作持久存储机制。“
有人可以向我解释这个“持久存储机制”的工作吗?我试着去一个视图文件,设置$这个 - >检测=“东西”,然后去另一个视图文件和echo $这个 - >测试
但一无所获....
如果你在相同的请求中调用视图脚本,并且顺序是正确的,那么你的测试将会起作用。
view-script1.phtml
<h3>Test one</h3>
<p>nothing</p><?php $this->test = 'something'; ?>
view-script2.phtml
<h3>Test two</h3>
<p><?php echo $this->test; ?></p>
如果你没有看到正确的顺序两个<h3>
标题或缺少一个,那么你没有正确调用视图脚本。
此外,持久性存储的最佳示例是控制器。如果你转发到其他行动,甚至控制器,你可以通过他们传递数据
controller1/actionOne
$this->view->test = 'something';
controller2/actionTwo
$this->view->test .= ' more';
in your viewscript
echo $this->test; // will print "something more"
持久性存储只不过是由Zend_View_Helper_Placeholder_Registry类使用的静态函数注册表,因为它是一个静态函数,它可以与许多对象共享,因此在视图助手(它是此占位符的子类)的上下文中称为持久性。
你可以更明确,也许显示一些代码?这是一个单一的请求,其中一个视图脚本包含另一个视图脚本? –