【发布时间】:2010-02-28 22:54:05
【问题描述】:
我在library/my/view/helper/gravatar 中有一个视图助手,所以在任何视图中我都可以调用$this->gravatar($email)。
但是如何在模型(或控制器)中访问此功能?
很抱歉,如果它已经被问过,但我是新的,并且文档的某些部分非常糟糕。
谢谢大家
【问题讨论】:
标签: php zend-framework models
我在library/my/view/helper/gravatar 中有一个视图助手,所以在任何视图中我都可以调用$this->gravatar($email)。
但是如何在模型(或控制器)中访问此功能?
很抱歉,如果它已经被问过,但我是新的,并且文档的某些部分非常糟糕。
谢谢大家
【问题讨论】:
标签: php zend-framework models
在您的控制器中,您可以通过以下方式访问 ViewHelpers
$this->view->gravatar($email)
您的模型不应从视图调用方法,因为它会将模型绑定到表示层。 View 可能知道模型,但模型不应该知道 View。
对于 Gravatars,还有一个服务和视图助手正在制作中:
【讨论】:
确定视图中的“事物”实际上是视图助手的更好方法是使用方法getHelper("helperName");。
$this->view->getHelper('gravatar');
【讨论】:
在控制器中:
$this->view->gravatar();
在模型中(Gordon 是对的,你一般不应该这样做):
Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')->getView()->gravatar()
或者简单地通过 Zend_Registry 共享 Zend_View 实例。如果你没有 View 实例,你可以像 $g = new View_Helper_Gravatar() 一样直接实例化它。要加载它,您可以使用 Zend_Loader_PluginLoader。
【讨论】: