2012-10-14 108 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));