Magento2 如何在magento 2x自定义模块控制器中获取管理员页面(包括密钥)的url
我需要Magento 2x中的页面url,包括自定义模块控制器中的密钥。 类似的东西,但这是为magento 1x。我需要一个magento 2xMagento2 如何在magento 2x自定义模块控制器中获取管理员页面(包括密钥)的url,magento2,magento-2.0,Magento2,Magento 2.0,我需要Magento 2x中的页面url,包括自定义模块控制器中的密钥。 类似的东西,但这是为magento 1x。我需要一个magento 2x 对于magento 1x:Mage::helper('adminhtml')->getUrl('adminhtml/framexport/index')但是我需要类似的magento 2x。您可以通过调用 $this->getUrl('adminhtml/module/action'); 请不要在$this object中加载“Context
对于magento 1x:
Mage::helper('adminhtml')->getUrl('adminhtml/framexport/index')
但是我需要类似的magento 2x。您可以通过调用
$this->getUrl('adminhtml/module/action');
请不要在$this object中加载“Context”类型的对象,正确的方法是,在模型块或任何类构造函数中插入UrlInterface 然后调用getUrl()函数
您可以按如下方式获取管理员url:
public function __construct(\Magento\Backend\Helper\Data $HelperBackend
) {
$this->HelperBackend = $HelperBackend;
}
/**
*
* @param \Magento\Framework\Event\Observer $observer
* @return void
*/
public function getAdminUrl()
{
echo $this->HelperBackend->getHomePageUrl();
}
不知何故,
adminhtml/module
创建了一个额外的admin
slug,但它不起作用。我的解决办法是:
// $this->urlBuilder is defined in __constructor() \Magento\Framework\UrlInterface $urlBuilder
$query = [
'method' => 'confirm',
'id' => $order->getEntityId()
];
$url = $this->urlBuilder->getUrl('module', $query);
它适用于安全URL(带密钥)和非默认的/admin
URL,例如/backend
// $this->urlBuilder is defined in __constructor() \Magento\Framework\UrlInterface $urlBuilder
$query = [
'method' => 'confirm',
'id' => $order->getEntityId()
];
$url = $this->urlBuilder->getUrl('module', $query);