在 Magento 2.0 中获取当前页面 url
Get the current page url in Magento 2.0
我正在尝试在模板文件中检索当前页面 url,但我不知道如何在 Magento 2.0 中执行此操作。
有人知道怎么弄吗? (请记住,我正在处理模板/phtml 文件)
通用解决方案:可在任何地方使用,而不仅仅是模板:
/** @var \Magento\Framework\UrlInterface $urlInterface */
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
通过模板,您可以更简单地完成:使用 \Magento\Framework\View\Element\AbstractBlock::getUrl()
方法:
$block->getUrl();
不要直接在文件中使用对象管理器实例
有objectManager
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
使用工厂方法
protected $_urlInterface;
public function __construct(
...
\Magento\Framework\UrlInterface $urlInterface
...
) {
$this->_urlInterface = $urlInterface;
}
public function getUrlInterfaceData()
{
echo $this->_urlInterface->getCurrentUrl();
echo $this->_urlInterface->getUrl();
echo $this->_urlInterface->getUrl('test/test2');
echo $this->_urlInterface->getBaseUrl();
}
如果没有 对象管理器,您可以使用下面的行在 模板上获取 current URL
文件
$this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])
我正在尝试在模板文件中检索当前页面 url,但我不知道如何在 Magento 2.0 中执行此操作。
有人知道怎么弄吗? (请记住,我正在处理模板/phtml 文件)
通用解决方案:可在任何地方使用,而不仅仅是模板:
/** @var \Magento\Framework\UrlInterface $urlInterface */
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
通过模板,您可以更简单地完成:使用 \Magento\Framework\View\Element\AbstractBlock::getUrl()
方法:
$block->getUrl();
不要直接在文件中使用对象管理器实例
有objectManager
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
使用工厂方法
protected $_urlInterface;
public function __construct(
...
\Magento\Framework\UrlInterface $urlInterface
...
) {
$this->_urlInterface = $urlInterface;
}
public function getUrlInterfaceData()
{
echo $this->_urlInterface->getCurrentUrl();
echo $this->_urlInterface->getUrl();
echo $this->_urlInterface->getUrl('test/test2');
echo $this->_urlInterface->getBaseUrl();
}
如果没有 对象管理器,您可以使用下面的行在 模板上获取 current URL
文件
$this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])