No Magento 1 Mage::getBaseUrl();
, mas no Magento 2 eu tenho que passar o tipo de objeto de classe responsável no construtor.
Eu não tenho a idéia de qual classe eu tenho que passar?
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
.Caso contrário, use isto:
Ou, se você o estiver usando em um modelo PHTML, use:
fonte
\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ê
fonte
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
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.
fonte
injetar gerente de loja e simplesmente obter URL base
Nota: não crie gerenciador de objetos sempre injetar
fonte
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 agetStoreManager()->getStore()->getBaseUrl()
função como abaixo:dentro do construtor você também pode passar argumentos como
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
dentro destagetBaseUrl()
função.Espero que isto ajude.
fonte
A maneira correta de obter mídia em PHTML é:
fonte
Simplesmente:
<?php $block->getBaseUrl() ?>
fonte
Na sua raiz magento, crie o arquivo Test.php.
fonte
No arquivo de classe de bloco, adicione a seguinte função:
E chame isso do seu arquivo de modelo .phtml com o seguinte:
fonte
Você pode obter o URL do Magento2 Base usando este:
fonte
No magento 2.
Se você deseja obter o URL base, use o código abaixo:
Usando objectManager, você pode usar o seguinte código
fonte
Aqui está o tutorial detalhado que encontrei para obter o URL base e outros no Magento2. http://www.webmull.com/magento-2-getbase-url/
fonte