2012-10-14 66 views
3

我在Zend框架2默认模块:如何在Zend框架得到控制器名,动作名2

namespace Application\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 
use Zend\View\Model\ViewModel; 

class IndexController extends AbstractActionController 
{ 
    public function indexAction() 
    { 
     return new ViewModel(); 
    } 
} 

我怎样才能得到当前控制器或者动作名称的名称...和将它传递给视图和/或布局? 不得不说,我只是从ZF2框架开始。

+0

你看看http://stackoverflow.com/questions/8843092/zf2-get-控制器名称为布局-看法? – DrBeza

回答

18

尝试如下的ZF2

$this->getEvent()->getRouteMatch()->getParam('action', 'index'); 

$this->getEvent()->getRouteMatch()->getParam('controller', 'index'); 
+0

在zf2中不起作用... –

+0

致命错误:调用未定义的方法Zend \ Http \ PhpEnvironment \ Request :: getControllerName() –

+0

您是否尝试过新编辑过的答案? – GBD

4

这个工作对我的项目:

$this->getHelperPluginManager()->getServiceLocator()->get('application')->getMvcEvent()->getRouteMatch()->getParam('action', 'index'); 

$controller = $this->getHelperPluginManager()->getServiceLocator()->get('application')->getMvcEvent()->getRouteMatch()->getParam('controller', 'index'); 

$controller = array_pop(explode('\\', $controller));