我需要Magento 2x中的页面网址,包括我的自定义模块控制器中的密钥。 here类似的东西,但这是magento 1x。我需要magento 2x。
对于magento 1x:Mage::helper('adminhtml')->getUrl('adminhtml/framexport/index')
但我需要类似于magento 2x。
答案 0 :(得分:3)
您可以通过调用
轻松获取管理员网址$this->getUrl('adminhtml/module/action');
请注意不要"上下文"对象类型加载在$ this对象
中答案 1 :(得分:3)
正确的方法是,在模型块或任何类构造函数中注入 UrlInterface
然后调用 getUrl()函数
class SomeClass extends \Some\Other\Class
{
protected $_backendUrl;
public function __construct(
...........
...........
\Magento\Backend\Model\UrlInterface $backendUrl,
...........
) {
$this->_backendUrl = $backendUrl;
}
public function someFunction()
{
$params = array('some'=>'url_parameters');
$url = $this->_backendUrl->getUrl("the/url/path", $params);
}
}
答案 2 :(得分:1)
您可以按如下方式获取管理员网址:
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();
}
答案 3 :(得分:0)
不知何故,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);
它适用于安全网址(带密钥)和非默认 /admin
网址,例如 /backend
。