Magento 2: Get Controller, Module, Action & Route Name
This article shows how we can get name of the current module, controller name, action name and route name in Magento 2.
Using Dependency Injection (DI)
Below is a block class of my custom module (Chapagain_HelloWorld). I have injected object of \Magento\Framework\App\Request\Http class in the constructor of my module’s block class.
app/code/Chapagain/HelloWorld/Block/HelloWorld.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | <?php namespace Chapagain\HelloWorld\Block; class HelloWorld extends \Magento\Framework\View\Element\Template { protected $_request; public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\App\Request\Http $request, array $data = [] ) { $this->_request = $request; parent::__construct($context, $data); } public function getControllerModule() { return $this->_request->getControllerModule(); } public function getFullActionName() { return $this->_request->getFullActionName(); } public function getRouteName() { return $this->_request->getRouteName(); } public function getActionName() { return $this->_request->getActionName(); } public function getControllerName() { return $this->_request->getControllerName(); } public function getModuleName() { return $this->_request->getModuleName(); } } ?> |
See more functions in vendor/magento/framework/App/Request/Http.php.
Now, we use can the function in our template (.phtml) file.
1 2 3 4 5 6 | echo $block->getRouteName() . '<br />'; echo $block->getModuleName() . '<br />'; echo $block->getControllerName() . '<br />'; echo $block->getActionName() . '<br />'; echo $block->getFullActionName() . '<br />'; echo $block->getControllerModule() . '<br />'; |
Using Object Manager
1 2 3 4 5 6 7 8 9 10 | $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $request = $objectManager->get('\Magento\Framework\App\Request\Http'); echo $request->getRouteName() . '<br />'; echo $request->getModuleName() . '<br />'; echo $request->getControllerName() . '<br />'; echo $request->getActionName() . '<br />'; echo $request->getFullActionName() . '<br />'; echo $request->getControllerModule() . '<br />'; |
Hope this helps. Thanks.





Mukesh Chapagain is a graduate of Kathmandu University (Dhulikhel, Nepal) from where he holds a Masters degree in Computer Engineering. Mukesh is a passionate web developer who has keen interest in open source technologies, programming & blogging.