Risposte:
Nel magento 2.
Se vuoi ottenere l'URL di base, puoi provare sotto il codice:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Dove $this->_storeManager
esempio di\Magento\Store\Model\StoreManagerInterface
questo codice sopra ti darà risultati
http://www.example.com ( se Seo rewrite è abilitato )
E http://www.example.com/index.php ( se Seo rewrite non è abilitato )
Se vuoi l'URL di base senza index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Vedi in dettaglio a magento2 get base url and media url and static url
Utilizzando Object Manager
URL di base:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
URL di base senza index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Per ottenere l'URL della base multimediale:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
per ottenere l'URL del link:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Per ottenere il $this->_storeManager
Dovresti chiamare iniettare\Magento\Store\Model\StoreManagerInterface $storeManager
alla __construct( )
funzione alla classe di blocco
proprio come :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Inoltre, è possibile ottenere URL di base direttamente al phtml
utilizzando chiamata diretta di 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 si desidera l'URL di base su phtml, iniettare StoreManagerInterface
al blocco
Basta usare questo comando con te usando una classe che si estende \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
In caso contrario, utilizzare questo:
$this->_storeManager->getStore()->getBaseUrl()
O se lo stai usando in un template PHTML usa:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. Tuttavia, la domanda del PO non fa riferimento a dove sta attualmente codificando. Come modello, assistente, controller, ecc.
In Magneto2: questo è il modo per ottenere il collegamento Url nel file PHTML:
echo $this->getUrl('about-us')
Spero che funzionerà per te
Se vuoi solo ottenere un URL dalla directory principale della tua installazione di Magento, puoi semplicemente usare getUrl. Eredita dalla classe AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock) in modo da poterlo utilizzare su uno qualsiasi dei tuoi blocchi. Ecco un esempio
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
Il primo parametro è il percorso desiderato e il secondo imposta l'opzione _secure se l'utente naviga su https. È possibile aggiungere al percorso concatenando un nome file specifico sulla chiamata getUrl oppure è possibile aggiungerlo al primo parametro. Il percorso è relativo alla directory principale dell'installazione di Magento.
iniettare il gestore del negozio e ottenere semplicemente l'URL di base
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Nota: non creare il gestore oggetti iniettare sempre
Bene, se è Magento 2.0.0. La versione CE stabile e qualsiasi tipo di oggetto "Contesto" è già caricato nella classe Block come Magento\Backend\Block\Widget\Context
quindi basta chiamare la getStoreManager()->getStore()->getBaseUrl()
funzione come di seguito:
$context->getStoreManager()->getStore()->getBaseUrl()
all'interno del costruttore puoi anche passare argomenti come \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
all'interno di questa getBaseUrl()
funzione.
Spero che sia di aiuto.
Nella tua radice magento crea il file 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();
Nel file della classe di blocco aggiungi la seguente funzione:
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 chiama questo dal tuo file modello .phtml con il seguente:
$block->getImageUrl('<relative image path>')
Puoi ottenere l'URL di Magento2 Base usando questo:
$this->_storeManager->getStore()->getBaseUrl()
Nel magento 2.
Se desideri ottenere l'URL di base, puoi utilizzare il codice seguente:
$this->_storeManager->getStore()->getBaseUrl()
Utilizzando objectManager, è possibile utilizzare il seguente codice
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Ecco il tutorial dettagliato che ho trovato per ottenere l'URL di base e altri in Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}