Не удается получить доступ к 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');