Magento 2: नियंत्रक, मॉड्यूल, कार्रवाई और रूटर नाम कैसे प्राप्त करें?


जवाबों:


33

नियंत्रक, मॉड्यूल, क्रिया और मार्ग का नाम पाने के लिए नियंत्रक वर्ग में नीचे दिए गए कोड का उपयोग करें:

<?php
    namespace Custom\Module\Controller\Index;

class Index extends \Magento\Framework\App\Action\Action
{
    protected $request;

    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Framework\App\Request\Http $request
    ){
        parent::__construct($context);
        $this->request = $request;
    }

    public function execute()
    {
        $moduleName = $this->request->getModuleName();
        $controller = $this->request->getControllerName();
        $action     = $this->request->getActionName();
        $route      = $this->request->getRouteName();

        echo $moduleName."<br/>";
        echo $controller."<br/>";
        echo $action."<br/>";
        echo $route."<br/>";

        $this->_view->loadLayout();
        $this->_view->renderLayout();
    }
}

hi @ मानशवी, क्या हम रेफ़रलUrl से कंट्रोलर और एक्शन नाम प्राप्त कर सकते हैं?
जाफर पिंजर

14

नीचे phtmlफ़ाइल या controllerउपयोग करने के लिए

echo $controllerName = $this->getRequest()->getControllerName();
echo $actionName = $this->getRequest()->getActionName();
echo $routeName = $this->getRequest()->getRouteName();
echo $moduleName = $this->getRequest()->getModuleName(); 

मैं एक पर्यवेक्षक सेट करने के लिए होम पेज नियंत्रक कार्रवाई कैसे कर सकता हूं?
सुप्रिया मिश्रा

यदि आप इस कोड का परीक्षण करते हैं तो यह होमपेज के लिए आउटपुट देगा controller:index,action:index,route:cms,module:cmsउम्मीद है कि यह मदद करेगा।
क़ैसर सत्ती

@QaisarSatti, क्या हम रेफरल यूआरएल से नियंत्रक और कार्रवाई नाम प्राप्त कर सकते हैं? $ this-> redirect-> getRefererUrl ();
जफ़र पिंजर

5

Magento 2 में phtml, नियंत्रक और घटनाओं के लिए नीचे कोड स्निपेट का उपयोग करें

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$requestInterface = $objectManager->get('Magento\Framework\App\RequestInterface');

$routeName      = $requestInterface->getRouteName();
$moduleName     = $requestInterface->getModuleName(); 
$controllerName = $requestInterface->getControllerName(); 
$actionName     = $requestInterface->getActionName();

3
आपको ObjectManagerसीधे नहीं करना चाहिए । आपको डीआई के माध्यम से आवश्यक कक्षाओं / वस्तुओं को इंजेक्ट करना चाहिए।
7ochem


1

आप इन सूचनाओं को अनुरोध वस्तु से प्राप्त कर सकते हैं।

उदाहरण

आपकी controllerकक्षा में:

$routeName        = $this->getRequest()->getRouteName();
$moduleName       = $this->getRequest()->getModuleName();
$controllerName   = $this->getRequest()->getControllerName();
$actionName       = $this->getRequest()->getActionName();

मुझे उम्मीद है कि इससे सहायता मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.