如何从面包屑部分访问实际视图中定义的变量?
我尝试使用$ this-> myVar,但我什么也得不到。
我也试试这个并且它有效:
$view = Zend_Layout::getMvcInstance()->getView();
echo $view->myVar
这是正确的还是有更好的方法?
答案 0 :(得分:2)
Davi Harkness的回答是gr8,但是如果你仍然想要像$ view-> var一样使用它,你甚至不需要使用部分视图助手就可以了。
$view = new Zend_View();
$paths = $this->view->getScriptPaths();
$view->addScriptPath($paths[0]);
$view->name = "open source";
$test = $view->render("test.phtml");
echo $test;
test.phtml位于当前模块的/ views / scripts目录中并且包含
<?php echo $this->name?>
答案 1 :(得分:1)
Partial View Helper documentation明确指出它“用于在自己的变量范围内呈现指定的模板”。它通过克隆视图并清除其cloneView()
方法中的所有现有变量来实现此目的:
public function cloneView()
{
$view = clone $this->view;
$view->clearVars();
return $view;
}
不是将partial部分耦合到调用它的视图,而是应该让这些视图传递给数组中部分需要的值。
<?php echo $this->partial('partial.phtml', array(
'from' => 'Team Framework',
'subject' => 'view partials',
)); ?>
然后,部分视图脚本可以访问$this->from
和$this->subject
。
<?php // partial.phtml ?>
<ul>
<li>From: <?php echo $this->escape($this->from) ?></li>
<li>Subject: <?php echo $this->escape($this->subject) ?></li>
</ul>