Respuestas:
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
.
$this->getBaseUrl()
Si no, use esto:
$this->_storeManager->getStore()->getBaseUrl()
O si lo está utilizando en una plantilla PHTML, use:
$block->getBaseUrl()
\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
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
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
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.
inyecte el administrador de la tienda y simplemente obtenga la URL base
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Nota: no cree que el administrador de objetos siempre inyecte
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 la getStoreManager()->getStore()->getBaseUrl()
función como se muestra a continuación:
$context->getStoreManager()->getStore()->getBaseUrl()
dentro del constructor también puedes pasar argumentos como \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
dentro de esta getBaseUrl()
función.
Espero que esto ayude.
En su raíz de magento cree el archivo Test.php.
use Magento\Framework\App\Bootstrap;
include('app/bootstrap.php');
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$storeManager = $objectManager->get('Magento\Store\Model\StoreManagerInterface');
$baseUrl= $storeManager->getStore()->getBaseUrl();
En su archivo de clase de bloque, agregue la siguiente función:
public function getImageUrl($link_url = '')
{
if(!empty($link_url))
{
$media_url = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $media_url.'/'.$link_url;
}
else
{
return '#';
}
}
Y llame a esto desde su archivo de plantilla .phtml con lo siguiente:
$block->getImageUrl('<relative image path>')
Puede obtener la URL base de Magento2 utilizando esto:
$this->_storeManager->getStore()->getBaseUrl()
En magento 2.
Si desea obtener la URL base, puede usar el siguiente código:
$this->_storeManager->getStore()->getBaseUrl()
Al usar objectManager, puede usar el siguiente código
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Aquí está el tutorial detallado que encontré para obtener la url base y otras en Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}