Php Zend ViewHelper子函数
我想向ViewHelper添加多个函数。通常有一个函数命名为类和文件名 如何将多个函数添加到一个ViewHelper中 例如,像这样:Php Zend ViewHelper子函数,php,function,zend-view,zend-framework,view-helpers,Php,Function,Zend View,Zend Framework,View Helpers,我想向ViewHelper添加多个函数。通常有一个函数命名为类和文件名 如何将多个函数添加到一个ViewHelper中 例如,像这样: class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract { public function Horizontal($parameter) { return "..."; } } echo$this->MyMenuHelper()->水平
class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract
{
public function Horizontal($parameter)
{
return "...";
}
}
echo$this->MyMenuHelper()->水平($parameter)代码>尝试以小写字母开头函数名
class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract
{
public function horizontal($parameter)
{
return "...";
}
}
他认为:
echo $this->myMenuHelper()->horizontal($parameter);
尝试以小写字母开头函数名
class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract
{
public function horizontal($parameter)
{
return "...";
}
}
他认为:
echo $this->myMenuHelper()->horizontal($parameter);
Alex走的是正确的道路,但在他的回答中遗漏了一些东西:实际的myMenuHelper()
方法必须返回视图帮助器本身,才能正常工作:
class Zend\u View\u Helper\u MyMenuHelper扩展了Zend\u View\u Helper\u摘要
{
公共函数myMenuHelper()
{
退还$this;
}
公共函数水平(){…}
//更多方法。。。
}
然后,如前所述:
echo$this->myMenuHelper()->horizontal();
Alex走的是正确的道路,但在他的回答中遗漏了一点:实际的myMenuHelper()
方法必须返回视图帮助器本身,才能正常工作:
class Zend\u View\u Helper\u MyMenuHelper扩展了Zend\u View\u Helper\u摘要
{
公共函数myMenuHelper()
{
退还$this;
}
公共函数水平(){…}
//更多方法。。。
}
然后,如前所述:
echo$this->myMenuHelper()->horizontal();
有时您不希望传递视图帮助器的主方法,尽管它对于某些类型的逻辑来说并不坏。在这种情况下,请使用getHelper()
:
以下示例完全绕过myMenuHelper()
:
// in controller
$this->view->getHelper('MyMenuHelper')->horizontal();
// in view
$this->getHelper('MyMenuHelper')->horizontal();`
例如,在某些情况下,我使用控制器中的一些内部数据填充视图帮助器,直接在视图中调用其主方法,该方法对该数据起作用
// in controller
$this->view->getHelper('MyMenuHelper')->storeData($someArray);
// in view
$this->myMenuHelper(); // iterates over $someArray
有时,您不希望传递视图帮助器的主方法,尽管这对于某些类型的逻辑来说并不坏。在这种情况下,请使用getHelper()
:
以下示例完全绕过myMenuHelper()
:
// in controller
$this->view->getHelper('MyMenuHelper')->horizontal();
// in view
$this->getHelper('MyMenuHelper')->horizontal();`
例如,在某些情况下,我使用控制器中的一些内部数据填充视图帮助器,直接在视图中调用其主方法,该方法对该数据起作用
// in controller
$this->view->getHelper('MyMenuHelper')->storeData($someArray);
// in view
$this->myMenuHelper(); // iterates over $someArray
错误调用非对象[视图中脚本]上的成员函数horizontal()
错误调用非对象[视图中脚本]上的成员函数horizontal()