features - magento install
Obtenga la URL de la página actual en Magento 2.0 (2)
Estoy tratando de recuperar la URL de la página actual en un archivo de plantilla, pero no puedo entender cómo hacerlo en Magento 2.0.
¿Alguien sabe cómo conseguirlo? (tenga en cuenta que estoy trabajando en una plantilla / archivo phtml)
No use la instancia del administrador de objetos directamente en los archivos
Con ObjectManager
$urlInterface = /Magento/Framework/App/ObjectManager::getInstance()->get(''Magento/Framework/UrlInterface'');
$urlInterface->getCurrentUrl();
Con el método de fábrica
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();
}
La solución universal : funciona desde cualquier lugar, no solo desde una plantilla:
/** @var /Magento/Framework/UrlInterface $urlInterface */
$urlInterface = /Magento/Framework/App/ObjectManager::getInstance()->get(''Magento/Framework/UrlInterface'');
$urlInterface->getCurrentUrl();
Desde una plantilla, puede simplificarlo : utilizando el método /Magento/Framework/View/Element/AbstractBlock::getUrl()
:
$block->getUrl();
Un ejemplo del núcleo: https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Customer/view/frontend/templates/logout.phtml#L14