Пехлеви: Как использовать пользовательскую функцию от помощника представления в контроллере?

У меня есть помощник представления в library/my/view/helper/gravatar и так в любом представлении я могу звонить $this->gravatar($email).

Но как я могу получить доступ к этой функции в моделях (или контроллеры)?

Извините, если его уже спрошенный, но я являюсь новым, и документация чертовски ужасна в частях.

Спасибо все

5
задан Charles 6 April 2011 в 03:09
поделиться

3 ответа

В вашем контроллере вы можете получить доступ к ViewHelpers через

$this->view->gravatar($email)

. Ваша модель не должна вызывать методы из представления, так как это привяжет модель к уровню представления. . Представление может знать о модели, но модель не должна знать о представлении.

Для Gravatars также находится помощник по обслуживанию и представлению:

7
ответ дан 14 December 2019 в 04:36
поделиться

Лучший способ убедиться, что "объект" из представления на самом деле является помощником представления, - это использовать метод getHelper ("helperName"); .

  $this->view->getHelper('gravatar');
1
ответ дан 14 December 2019 в 04:36
поделиться

В контроллере:

$this->view->gravatar();

В модели (Гордон прав, что в целом этого делать не стоит):

Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')->getView()->gravatar()

или просто поделитесь экземпляром Zend_View через Zend_Registry. Если у вас нет экземпляра View, вы можете напрямую создать его, например $g = new View_Helper_Gravatar(). Для его загрузки вы можете использовать Zend_Loader_PluginLoader.

0
ответ дан 14 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: