0

所以我创建了一个视图助手来专门化/简化 Flash Messenger 助手的一些功能。

我环顾四周,发现您应该能够通过以下代码访问 FlashMessenger 帮助程序:

$this->view->_helper->flashMessenger->getMessages();

这对我不起作用。我可以访问视图,但不能访问 _helper 下的任何内容。我的助手类确实扩展了 Zend_View_Helper_Abstract。您是否必须从视图脚本显式传入视图?

4

1 回答 1

3

Zend_Controller_Action的$_helper属性存储了 Zend_Controller_Action_HelperBroker 的一个实例,因此您可以获取 HelperBroker 的一个实例,然后从那里获取 FlashMessenger 对象,而不是将其从视图传递给您的助手。

// inside your view helper
$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');

现在您可以从您的视图助手中访问 Flash Messenger。您可以从应用程序中的任何位置执行相同操作,以获取对任何操作助手的引用。

另请注意,如果尚未创建帮助程序,则调用getStaticHelper将为您初始化它。

有关更多信息,请参阅操作助手 - 助手代理

于 2012-02-06T21:25:33.477 回答