Respostas:
No magento 2.
Se você deseja obter o URL base, tente o código abaixo:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Onde $this->_storeManager
instância de\Magento\Store\Model\StoreManagerInterface
este código acima lhe dará resultado
http://www.example.com ( se a reescrita de SEO estiver ativada )
E http://www.example.com/index.php ( se a reescrita de SEO não estiver ativada )
Se você deseja URL base sem index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Veja em detalhes em magento2 get base url and media url and static url
Usando o Gerenciador de Objetos
URL base:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
URL base sem 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 obter o URL base da mídia:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
para obter o URL do link:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Para obter o $this->_storeManager
Você deve chamar injetar\Magento\Store\Model\StoreManagerInterface $storeManager
na __construct( )
função na classe de bloco
Assim como :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Além disso, você pode obter URL base directamente no phtml
meio de uma chamada direta 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
. Se você deseja url base em phtml, injete StoreManagerInterface
no bloco
Basta usar este comando com uma classe que se estende \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
Caso contrário, use isto:
$this->_storeManager->getStore()->getBaseUrl()
Ou, se você o estiver usando em um modelo PHTML, use:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. No entanto, a pergunta do OP não faz referência de onde ele está atualmente codificando. Como modelo, auxiliar, controlador etc.
No Magneto2: Esta é a maneira de obter o link do URL no arquivo PHTML:
echo $this->getUrl('about-us')
Espero que funcione para você
Se você deseja apenas obter uma URL do diretório raiz da instalação do Magento, basta usar getUrl. Ele é herdado da classe AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock) para que você possa usá-lo em qualquer um de seus blocos. Aqui está um exemplo
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
O primeiro parâmetro é o caminho que você deseja e o segundo define a opção _secure se o usuário estiver navegando por https. Você pode adicionar ao caminho concatenando um nome de arquivo específico na chamada getUrl ou pode adicioná-lo ao primeiro parâmetro. O caminho é relativo ao diretório raiz da sua instalação do Magento.
injetar gerente de loja e simplesmente obter URL base
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Nota: não crie gerenciador de objetos sempre injetar
Bem, se é Magento 2.0.0. A versão estável do CE e qualquer tipo de objeto "Contexto" já está carregado na classe Block, como Magento\Backend\Block\Widget\Context
assim, basta chamar a getStoreManager()->getStore()->getBaseUrl()
função como abaixo:
$context->getStoreManager()->getStore()->getBaseUrl()
dentro do construtor você também pode passar argumentos como \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
dentro desta getBaseUrl()
função.
Espero que isto ajude.
Na sua raiz magento, crie o arquivo 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();
No arquivo de classe de bloco, adicione a seguinte função:
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 '#';
}
}
E chame isso do seu arquivo de modelo .phtml com o seguinte:
$block->getImageUrl('<relative image path>')
Você pode obter o URL do Magento2 Base usando este:
$this->_storeManager->getStore()->getBaseUrl()
No magento 2.
Se você deseja obter o URL base, use o código abaixo:
$this->_storeManager->getStore()->getBaseUrl()
Usando objectManager, você pode usar o seguinte código
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Aqui está o tutorial detalhado que encontrei para obter o URL base e outros no Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}