Antworten:
In Magento 2.
Wenn Sie die Basis-URL erhalten möchten, können Sie den folgenden Code versuchen:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Wo $this->_storeManager
Instanz von\Magento\Store\Model\StoreManagerInterface
Dieser obige Code gibt Ihnen das Ergebnis
http://www.example.com ( Wenn Seo Rewrite aktiviert ist )
Und http://www.example.com/index.php ( Wenn Seo Rewrite nicht aktiviert ist )
Wenn Sie die Basis-URL ohne möchten index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Details finden Sie unter magento2 get base url and media url and static url
Verwenden des Objektmanagers
Basis-URL:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
Basis-URL ohne index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Zum Abrufen der Media Base-URL:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
um die Link-URL zu erhalten:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Um das zu bekommen $this->_storeManager
solltest Du inject anrufen\Magento\Store\Model\StoreManagerInterface $storeManager
at __construct( )
function in der Blockklasse
so wie :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Sie können aber auch erhalten Basis - URL direkt bei phtml
Verwendung von direktem Aufruf von object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Hinweis: Directly call of object manager is not good idea
. Wenn Sie eine Basis-URL bei phtml wollen, dann fügen Sie diese StoreManagerInterface
bei block ein
Verwenden Sie einfach diesen Befehl, wenn Sie eine Klasse verwenden, die erweitert wird \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
Wenn nicht, benutze dies:
$this->_storeManager->getStore()->getBaseUrl()
Oder wenn Sie es in einer PHTML-Vorlage verwenden:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. Die Frage des OP bezieht sich jedoch nicht darauf, woher er gerade codiert. Wie Modell, Helfer, Controller, etc.
In Magneto2: So erhalten Sie den URL-Link in der PHTML-Datei:
echo $this->getUrl('about-us')
Ich hoffe es wird für dich funktionieren
Wenn Sie nur eine URL aus dem Stammverzeichnis Ihrer Magento-Installation erhalten möchten, können Sie einfach getUrl verwenden. Es erbt von der AbstractBlock-Klasse (Magento \ Framework \ View \ Element \ AbstractBlock), sodass Sie es in jedem Ihrer Blöcke verwenden können. Hier ist ein Beispiel
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
Der erste Parameter ist der gewünschte Pfad und der zweite Parameter legt die Option _secure fest, wenn der Benutzer über https navigiert. Sie können dem Pfad hinzufügen, indem Sie dem getUrl-Aufruf einen bestimmten Dateinamen zuordnen, oder Sie können ihn dem ersten Parameter hinzufügen. Der Pfad ist relativ zum Stammverzeichnis Ihrer Magento-Installation.
Ladenmanager einspritzen und einfach Basis-URL holen
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Hinweis: Erstellen Sie Objektmanager nicht immer injizieren
Na wenn es Magento 2.0.0 ist. CE Stable-Version und alle "Context" -Objekttypen sind bereits in der Block-Klasse geladen. Magento\Backend\Block\Widget\Context
Rufen Sie einfach die folgende getStoreManager()->getStore()->getBaseUrl()
Funktion auf:
$context->getStoreManager()->getStore()->getBaseUrl()
Innerhalb des Konstruktors können Sie auch Argumente wie \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
in dieser getBaseUrl()
Funktion übergeben.
Hoffe das hilft.
Erstellen Sie in Ihrem Magento-Stammverzeichnis die Datei 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();
Fügen Sie in Ihrer Blockklassendatei folgende Funktion hinzu:
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 '#';
}
}
Rufen Sie dies in Ihrer .phtml-Vorlagendatei folgendermaßen auf:
$block->getImageUrl('<relative image path>')
Sie können die Magento2 Base-URL folgendermaßen abrufen:
$this->_storeManager->getStore()->getBaseUrl()
In Magento 2.
Wenn Sie die Basis-URL erhalten möchten, können Sie den folgenden Code verwenden:
$this->_storeManager->getStore()->getBaseUrl()
Mit objectManager können Sie den folgenden Code verwenden
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Hier ist das detaillierte Tutorial, das ich gefunden habe, um die Basis-URL und andere in Magento2 zu bekommen. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}