ম্যাজেন্টো 2: কীভাবে কন্ট্রোলার, মডিউল, অ্যাকশন এবং রাউটারের নাম পাবেন?


24

ম্যাজেন্টো 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();
    }
}

হাই @ মনশভী, আমরা কি রেফারালআরএল থেকে নিয়ামক এবং অ্যাকশন নাম পেতে পারি?
জাফর পিনজার

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দেবে আশা করি এটি সহায়তা করবে।
কায়সার সত্তী

@ কায়সারসট্টি, আমরা কি রেফারেল ইউআরএল থেকে নিয়ামক এবং ক্রিয়া নাম পেতে পারি? $ this-> redirect-> getRefererUrl ();
জাফর পিনজার

5

পিএইচটিএমএল, নিয়ামক এবং ম্যাজেন্টো 2 এ ইভেন্টগুলিতে কোড স্নিপেটগুলির নীচে ব্যবহার করুন

$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সরাসরি ইনস্ট্যান্ট করা উচিত নয় । আপনার ডিআই এর মাধ্যমে প্রয়োজনীয় ক্লাস / অবজেক্টগুলি ইনজেক্ট করা উচিত।
ওচেম


1

অনুরোধ অবজেক্ট থেকে আপনি এই তথ্যগুলি পেতে পারেন।

উদাহরণ

আপনার controllerক্লাসে:

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

আমি আশা করি এটি সাহায্য করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.