我有一个Controller,Layout,Custom视图助手。我从控制器$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');
}
}
这是我的助手
答案 0 :(得分:0)
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');
}
答案 1 :(得分:0)
更改辅助函数,使其接受参数,如下所示:
在 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中,调用navbar助手传递参数:
<?php echo $this->navbar($this->foo);?>