Не удается получить доступ к View Helper из другого представления, вызываемого в контроллере [Zend Framework]

Мне нужно отправить электронное письмо через 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 ответ

Мне пришлось установить вспомогательный путь, добавив второй аргумент так:

$view = new Zend_View();
$view->setHelperPath(LIB_PATH.'Ms'.DS.'View'.DS.'Helper', 'Ms_View_Helper');
Другие вопросы по тегам