Magento 2 : วิธีรับชื่อคอนโทรลเลอร์โมดูลแอ็คชั่นและเราเตอร์
Magento 2 : วิธีรับชื่อคอนโทรลเลอร์โมดูลแอ็คชั่นและเราเตอร์
คำตอบ:
ใช้รหัสด้านล่างในคลาสคอนโทรลเลอร์เพื่อรับชื่อคอนโทรลเลอร์โมดูลแอ็คชันและเส้นทาง:
<?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();
}
}
เพื่อรับ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
หวังว่าสิ่งนี้จะช่วยได้
ใช้ตัวอย่างโค้ดด้านล่างเพื่อ phtml, ตัวควบคุมและกิจกรรมในวีโอไอพี 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();
ObjectManager
โดยตรง คุณควรฉีดคลาส / วัตถุที่ต้องการผ่าน DI
คุณยังสามารถทำสิ่งต่อไปนี้
$this->_requestInterface->getFullActionName()
เพื่อรับชื่อแอ็คชั่นแบบเต็ม
คุณสามารถรับข้อมูลเหล่านี้จากวัตถุคำขอ
ตัวอย่าง
ในcontroller
ชั้นเรียนของคุณ:
$routeName = $this->getRequest()->getRouteName();
$moduleName = $this->getRequest()->getModuleName();
$controllerName = $this->getRequest()->getControllerName();
$actionName = $this->getRequest()->getActionName();
ฉันหวังว่านี่จะช่วยได้