Zend: How to use a custom function from a view helper in the controller?

谁说胖子不能爱 提交于 2019-12-05 09:45:58

In your controller, you can access ViewHelpers through

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

Your model should not call methods from the View, as it would tie the model to the presentation layer. The View may know about the model, but the model should not know about the View.

For Gravatars, there is also a Service and View Helper in the making:

A better way to be sure the "thing" from the view is actually a view helper is to use the method getHelper("helperName");.

  $this->view->getHelper('gravatar');

In controller:

$this->view->gravatar();

In model (Gordon is right that you should not do it in general):

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

or simply share Zend_View instance via Zend_Registry. In case you don't have View instance you can directly instantiate it like $g = new View_Helper_Gravatar(). To load it you can use Zend_Loader_PluginLoader.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!