无法从控制器中调用的另一个视图访问View Helper [Zend Framework]

时间:2014-04-16 15:14:19

标签: php zend-framework include view-helpers

我需要在Zend_Mail内通过IndexController发送电子邮件。我宁愿使用其他视图,而不是在变量中设置电子邮件的正文。 以下是我在控制器中调用视图的方式:

    $view = new Zend_View();
    $view->addScriptPath(APPLICATION_PATH.$this->getRequest()->getModuleName().DS.'views'.DS.'scripts'.DS.'email')
         ->setHelperPath(LIB_PATH.'Ms'.DS.'View'.DS.'Helper');
    $view->subscription = $subscription;

然后我配置电子邮件并像这样发送:

    $mail = new Zend_Mail('UTF-8');
    $mail-> // ...
         ->setBodyHtml($view->render('checkout.phtml'))
         ->send();

scripts/email/checkout.phtml中,我使用两个视图助手,在控制器的默认视图中调用时,它们可以正常工作。但在checkout.phtml中使用时不再存在。

我同时使用$this->price($myTotal)$this->getHelper('Price')->price($myTotal),但都没有。

我得到的错误是:Plugin by name 'Price' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;C:\wamp2.4\www\abo\library\Ms\View\Helper/。最奇怪的是它在正确的目录中寻找帮助但却无法找到它。

任何想法/想法?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我必须通过添加第二个参数来设置辅助路径,如下所示:

$view = new Zend_View();
$view->setHelperPath(LIB_PATH.'Ms'.DS.'View'.DS.'Helper', 'Ms_View_Helper');