如何访问控制器插件中的动作控制器?
我需要使用preDispatch
方法访问它。
class My_Controller_Plugin_MyPlugin extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$actionController = ?;
}
}
答案 0 :(得分:3)
我知道我已经迟到了两年,但是因为我在找到它的同时偶然发现了这一点,我想我还是会发帖。你在寻找的是:
//$module = $request->getModuleName(); // Not everyone uses modules.
$controller = $request->getControllerName();
$action = $request->getActionName();
警告......这只是给你请求的内容。如果您在发送后更改请求,则不再准确。
答案 1 :(得分:0)
这样的事情应该有效:
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$actionController = $this->getActionController();
}
实际上这在插件中不起作用(将在动作帮助器中工作)。
一些可能的解决方法: