Как получить имя контроллера, имя действия в Zend Framework 2

У меня есть модуль по умолчанию в Zend Framework 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.

 DrBeza14 окт. 2012 г., 17:29

Ответы на вопрос(2)

Решение Вопроса

Попробуйте как ниже для ZF2

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

$this->getEvent()->getRouteMatch()->getParam('controller', 'index');
 Dirk McQuickly14 окт. 2012 г., 17:38
Не работает в zf2 ...
 Matt Setter11 окт. 2013 г., 21:53
Довольно удобно. Было бы хорошо иметь метод для непосредственного вызова, но если это необходимо, stripos делает это замечательно.
 Robert Kuzma14 окт. 2012 г., 18:08
Неустранимая ошибка: вызов неопределенного метода Zend \ Http \ PhpEnvironment \ Request :: getControllerName ()
 GBD14 окт. 2012 г., 18:09
Вы пробовали недавно отредактированный ответ?
 Robert Kuzma14 окт. 2012 г., 18:12
Этот работает. Отлично. Благодарю.

Это работает на моем проекте:

$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));

Ваш ответ на вопрос