Zend框架工作自定义视图助手错误

0 zend-framework

您好我想在我的应用程序中添加自定义助手

已完成以下步骤

  1. 的index.php

    $view = new Zend_View();
    $view->addHelperPath('My/View/Helper', 'My_View_Helper');
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
    
    Run Code Online (Sandbox Code Playgroud)
  2. My/View/Helper中的助手类

    class My_View_Helper_Common extends Zend_View_Helper_Abstract
    {
    
        public function example()
        {
          return "ok"; 
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在调用视图index.phtml

    $this->example()
    
    Run Code Online (Sandbox Code Playgroud)

我收到这个错误

Uncaught exception 'Zend_View_Exception' with message 'script 'error/error.phtml' not found in path (.\application\views\scripts\)' in C:\xampp\htdocs\wyfixture\library\Zend\View\Abstract.php:924 
Stack trace: 
#0 C:\xampp\htdocs\wyfixture\library\Zend\View\Abstract.php(827): Zend_View_Abstract->_script('error/error.pht...') 
#1 C:\xampp\htdocs\wyfixture\library\Zend\Controller\Action\Helper\ViewRenderer.php(903): Zend_View_Abstract->render('error/error.pht...') 
#2 C:\xampp\htdocs\wyfixture\library\Zend\Controller\Action\Helper\ViewRenderer.php(924): Zend_Controller_Action_Helper_ViewRenderer->renderScript('error/error.pht...', NULL) 
#3 C:\xampp\htdocs\wyfixture\library\Zend\Controller\Action\Helper\ViewRenderer.php(963): Zend_Controller_Action_Helper_ViewRenderer->render() 
#4 C:\xampp\htdocs\wyfixture\library\Zend\Controller\Action\HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch() 
#5 C:\xampp\htdocs\wyfixture\library\Zend\Controller\Action.php(523):

请帮我

Ben*_*mer 5

除了Vikas的答案.

要在视图助手中调用多个方法,可以使用如下代码:

My/View/Helper/Example.php

class My_View_Helper_Example extends Zend_View_Helper_Abstract
{
    public function example()
    {
        return $this;
    }

    public function foo()
    {
        return 'foo';
    }

    public function bar()
    {
        return 'bar';
    }

    public function __toString()
    {
        return $this->foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

在你看来:

echo $this->example()->foo() // prints foo
echo $this->example()->bar() // prints bar
echo $this->example() // prints foo
Run Code Online (Sandbox Code Playgroud)