从breadcrumb partial访问end视图变量


Accessing zend view variables from breadcrumb partial

如何从breadcrumb部分访问在实际视图中定义的变量?

我尝试使用$this->myVar,但我没有得到任何东西。

我也试过这个,它工作:

$view = Zend_Layout::getMvcInstance()->getView();
echo $view->myVar 

这是正确的还是有更好的方法?

以上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;

测试的地方。php位于当前模块的/views/scripts目录中,包含

<?php echo $this->name?>

Partial View Helper文档特别指出,它"用于在其自己的变量范围内呈现指定的模板"。它通过克隆视图并清除cloneView()方法中的所有现有变量来实现这一点:

public function cloneView()
{
    $view = clone $this->view;
    $view->clearVars();
    return $view;
}

你应该让这些视图在数组中传递局部需要的值,而不是将局部与调用它的视图耦合。

<?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>