我试图从插件(在bootstrap中注册)调用helper的视图。从任何控制器,我能够访问没有任何问题,但不是从插件。下面是我的代码。任何帮助都是感激的。谢谢你!米格尔
class Plugins_security extends Zend_Controller_Plugin_Abstract
{
public function preDispatch (Zend_Controller_Request_Abstract $request)
{
$auth = Zend_Auth::getInstance();
$moduleName = $request->getModuleName();
if ($request->getModuleName() != "auth")
{
$auth = Zend_Auth::getInstance();
if (! $auth->hasIdentity())
{
$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper(
'redirector');
$flashMessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessages');
$flashMessenger->flashMessenger (array('message' => 'Sessao expirada', 'status' => 'error'));
$redirector->gotoUrl('/auth/login/')->redirectAndExit();
}
}
}
}
我得到以下错误。致命错误:未捕获的异常'Zend_Loader_PluginLoader_Exception'与消息'Plugin by name 'FlashMessages'未在注册表中找到;使用路径:Zend_Controller_Action_Helper_: Zend/Controller/Action/Helper/' in/usr/local/Zend/share/zendframework/library/Zend/Loader/PluginLoader.php:412 Stack trace: #0/usr/local/Zend/share/zendframework/library/Zend/Controller/Action/HelperBroker.php(366):
你必须改变
Zend_Controller_Action_HelperBroker: getStaticHelper (FlashMessages);
Zend_Controller_Action_HelperBroker: getStaticHelper (FlashMessenger);
的例子:$flashMessenger = Zend_Controller_Action_HelperBroker::getStaticHelper(' flashMessenger ');$flashMessenger->addMessage(array('error' => 'Session expired'));
希望这对你有帮助。不是测试