我有一个控制器、布局、自定义视图助手。我正在从控制器传递数据$this->view->foo = 'foo';
通常我在 layout.phtml 上获取它,在这里我在布局上调用自定义视图帮助程序$this->navbar();
。
如何在视图帮助程序中访问该foo
?
<?php
class Zend_View_Helper_Navbar extends Zend_View_Helper_Abstract
{
public function setView( Zend_View_Interface $view )
{
$view = new Zend_View();
$view->setScriptPath(APPLICATION_PATH . '/views/scripts/partials/');
$this->_view = $view;
}
public function navbar()
{
return $this->_view->render('navbar.phtml');
}
}
这是我的视图助手
更改帮助程序函数,使其接受参数,如下所示:
在Zend_View_Helper_Navbar:
public function navbar($foo="")
{
$this->_view->bar = $foo;
return $this->_view->render('navbar.phtml');
}
然后,在 navbar.phtml 中:
<?php echo $this->bar; ?>
这样,传递给帮助程序函数的任何参数值都将显示在 navbar.phtml 中。之后,您可以像往常一样从控制器文件中传递参数。
在控制器文件中:
$this->view->foo = "custom parameter";
在视图脚本或 layout.phtml 中,调用传递参数的导航栏帮助程序:
<?php echo $this->navbar($this->foo);?>
Zend_View_Helper_Navbar扩展了包含$view的Zend_View_Helper_Abstract。您所要做的就是:
public function navbar()
{
$this->view->setScriptPath(APPLICATION_PATH . '/views/scripts/partials/');
$foo = (isset($this->view->foo)) ? $this->view->foo : '';
// your code using $foo
return $this->view->render('navbar.phtml');
}