2011-10-03 48 views
3

如何訪問在實際視圖中從breadcrumb部分定義的變量?從breadcrumb部分訪問zend視圖變量

我正在嘗試$ this-> myVar,但我沒有得到任何東西。

我也試試這個和它的作品:

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

這是正確的或有更好的辦法?

回答

1

Partial View Helper documentation明確指出它「用於在其自己的變量範圍內呈現指定的模板」。它通過克隆的觀點,並在其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> 
+0

我說的是在實施例#渲染使用的局部視圖面包屑等35 http://framework.zend.com/manual /en/zend.view.helpers.html#zend.view.helpers.initial .navigation.breadcrumbs – dimirc

+0

也許如果你描述爲什麼你想從麪包屑中訪問視圖變量,那麼有人會知道一個更好的方法。例如,該視圖可以將內容添加到麪包屑部分可以呈現的佔位符。 –

2

以上內容由DAVI哈克尼斯答​​案是GR8,但如果你仍然想使用它像$視圖 - >變量,然後你甚至都不需要使用局部視圖助手,簡單地做

$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是內部/視圖/腳本當前模塊的目錄,並且包含

<?php echo $this->name?>