In Magento 1 Mage::getBaseUrl();
, aber in Magento 2 muss ich im Konstruktor den Objekttyp der verantwortlichen Klasse übergeben.
Ich habe keine Ahnung, welche Klasse ich bestehen muss?
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
.Wenn nicht, benutze dies:
Oder wenn Sie es in einer PHTML-Vorlage verwenden:
quelle
\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
quelle
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
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.
quelle
Ladenmanager einspritzen und einfach Basis-URL holen
Hinweis: Erstellen Sie Objektmanager nicht immer injizieren
quelle
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 folgendegetStoreManager()->getStore()->getBaseUrl()
Funktion auf:Innerhalb des Konstruktors können Sie auch Argumente wie
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
in diesergetBaseUrl()
Funktion übergeben.Hoffe das hilft.
quelle
Der richtige Weg, um Medien in PHTML zu erhalten, ist:
quelle
Einfach:
<?php $block->getBaseUrl() ?>
quelle
Erstellen Sie in Ihrem Magento-Stammverzeichnis die Datei Test.php.
quelle
Fügen Sie in Ihrer Blockklassendatei folgende Funktion hinzu:
Rufen Sie dies in Ihrer .phtml-Vorlagendatei folgendermaßen auf:
quelle
Sie können die Magento2 Base-URL folgendermaßen abrufen:
quelle
In Magento 2.
Wenn Sie die Basis-URL erhalten möchten, können Sie den folgenden Code verwenden:
Mit objectManager können Sie den folgenden Code verwenden
quelle
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/
quelle