我正在尝试在模板文件中检索当前页面网址,但我无法弄清楚如何在Magento 2.0中执行此操作。
有谁知道如何获得它? (请记住我正在使用模板/ phtml文件)
答案 0 :(得分:25)
universal solution:可以在任何地方使用,而不仅仅是模板:
/** @var \Magento\Framework\UrlInterface $urlInterface */
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
您可以do it simplier从模板中使用\Magento\Framework\View\Element\AbstractBlock::getUrl()
方法:
$block->getUrl();
答案 1 :(得分:7)
不要直接在文件中使用对象管理器实例
使用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();
}
答案 2 :(得分:0)
没有对象管理器,您可以使用下面的行获取模板文件上的当前 URL
$this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])