En Magento 1 Mage::getBaseUrl();
, pero en Magento 2 tengo que pasar el tipo de objeto de clase responsable en el constructor.
No tengo idea de qué clase tengo que pasar?
En magento 2.
Si desea obtener la URL base, puede probar el siguiente código:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Donde $this->_storeManager
instancia de\Magento\Store\Model\StoreManagerInterface
este código anterior te dará resultado
http://www.example.com ( si la reescritura de Seo está habilitada )
Y http://www.example.com/index.php ( si la reescritura de Seo no está habilitada )
Si desea URL base sin index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Ver en detalles en magento2 get base url and media url and static url
Usando Object Manager
URL base:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
URL base sin index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Para obtener la URL de la base de medios:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
para obtener enlace url:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Para obtener el $this->_storeManager
debe llamar inyectar\Magento\Store\Model\StoreManagerInterface $storeManager
en __construct( )
función en la clase de bloque
al igual que :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Además, puede obtener la URL base directamente al phtml
usar la llamada directa de object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Nota: Directly call of object manager is not good idea
. Si desea una base url en phtml, luego inyecte StoreManagerInterface
en el bloque
Simplemente use este comando si está usando una clase que se extiende
\Magento\Framework\View\Element\Template
.Si no, use esto:
O si lo está utilizando en una plantilla PHTML, use:
fuente
\Magento\Framework\View\Element\Template
. Sin embargo, la pregunta del OP no hace referencia a dónde está codificando actualmente. Como Modelo, Ayudante, Controlador, etc.En Magneto2: esta es la forma de obtener el enlace Url en el archivo PHTML:
echo $this->getUrl('about-us')
Espero que funcione para ti
fuente
Si solo desea obtener una URL del directorio raíz de su instalación de Magento, puede usar getUrl. Hereda de la clase AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock) para que pueda usarlo en cualquiera de sus bloques. Aquí hay un ejemplo
El primer parámetro es la ruta que desea, y el segundo establece la opción _secure si el usuario navega por https. Puede agregar a la ruta concatenando un nombre de archivo específico en la llamada getUrl o puede agregarlo al primer parámetro. La ruta es relativa al directorio raíz de su instalación de Magento.
fuente
inyecte el administrador de la tienda y simplemente obtenga la URL base
Nota: no cree que el administrador de objetos siempre inyecte
fuente
Bueno, si es Magento 2.0.0. La versión estable de CE y cualquier tipo de objeto "Contexto" ya está cargado en la clase Bloque como
Magento\Backend\Block\Widget\Context
entonces simplemente llame a lagetStoreManager()->getStore()->getBaseUrl()
función como se muestra a continuación:dentro del constructor también puedes pasar argumentos como
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
dentro de estagetBaseUrl()
función.Espero que esto ayude.
fuente
La forma correcta de obtener medios en PHTML es:
fuente
Simplemente:
<?php $block->getBaseUrl() ?>
fuente
En su raíz de magento cree el archivo Test.php.
fuente
En su archivo de clase de bloque, agregue la siguiente función:
Y llame a esto desde su archivo de plantilla .phtml con lo siguiente:
fuente
Puede obtener la URL base de Magento2 utilizando esto:
fuente
En magento 2.
Si desea obtener la URL base, puede usar el siguiente código:
Al usar objectManager, puede usar el siguiente código
fuente
Aquí está el tutorial detallado que encontré para obtener la url base y otras en Magento2. http://www.webmull.com/magento-2-getbase-url/
fuente