#zend-framework #view-helpers
#zend-framework #view-помощники
Вопрос:
У меня есть Action Helper, который является уровнем абстракции базы данных.
Я хотел бы получить к нему доступ в View Helper, чтобы прочитать и представить некоторые данные из модели.
В контроллере я вызываю Action Helper как метод брокера, но как добиться того же в View Helper?
Где-то в контроллере:
$this->_helper->Service("Custom\PageService");
Service.php:
...
public function direct($serviceClass)
{
return new $serviceClass($this->em);
}
Ответ №1:
Более приятным способом будет создать view helper внутри него
Zend_Controller_Action_HelperBroker::getStaticHelper('service')->direct("Custom\PageService");
другой способ — внутри метода инициализации контроллера выполнить
$this->view->helper = $this->_helper;
итак, в view (phtml) вы можете сделать
$this->helper->Service("Custom\PageService");
Комментарии:
1. Остается вопрос, какое решение было бы лучшим. Я думаю, что первое, потому что тогда вы не зависите от
Controller
. Что вы думаете?