W Magento 1 Mage::getBaseUrl();
, ale w Magento 2 muszę przekazać konstruktorowi typ obiektu klasy odpowiedzialnej.
Nie mam pojęcia, którą klasę muszę zaliczyć?
W magento 2.
Jeśli chcesz uzyskać podstawowy adres URL, możesz wypróbować poniższy kod:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Gdzie $this->_storeManager
wystąpił\Magento\Store\Model\StoreManagerInterface
powyższy kod da wynik
http://www.example.com ( jeśli przepisywanie Seo jest włączone )
I http://www.example.com/index.php ( Jeśli przepisywanie Seo nie jest włączone )
Jeśli chcesz podstawowy adres URL bez index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Zobacz szczegóły na magento2 get base url and media url and static url
Korzystanie z Menedżera obiektów
Podstawowy adres URL:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
Podstawowy adres URL bez index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Aby uzyskać adres URL bazy medialnej:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
w celu uzyskania adresu URL linku:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Aby uzyskać $this->_storeManager
powinieneś wezwać zastrzyk\Magento\Store\Model\StoreManagerInterface $storeManager
w __construct( )
funkcji w klasie blokowej
tak jak :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Możesz również uzyskać adres URL bezpośrednio przy phtml
użyciu bezpośredniego połączenia object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Uwaga: Directly call of object manager is not good idea
. Jeśli chcesz bazowy adres URL w phtml, to wstrzyknij StoreManagerInterface
w bloku
Po prostu użyj tego polecenia, gdy używasz rozszerzonej klasy
\Magento\Framework\View\Element\Template
.Jeśli nie, użyj tego:
Lub jeśli używasz go w szablonie PHTML użyj:
źródło
\Magento\Framework\View\Element\Template
. Jednak pytanie PO nie odnosi się do tego, skąd obecnie koduje. Takich jak Model, Pomocnik, Kontroler itp.W Magneto2: W ten sposób można uzyskać link Url do pliku PHTML:
echo $this->getUrl('about-us')
Mam nadzieję, że ci się uda
źródło
Jeśli chcesz uzyskać adres URL z katalogu głównego instalacji Magento, możesz po prostu użyć getUrl. Dziedziczy po klasie AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock), dzięki czemu możesz używać go w dowolnym bloku. Oto przykład
Pierwszy parametr to żądana ścieżka, a drugi ustawia opcję _secure, jeśli użytkownik przegląda https. Możesz dodać do ścieżki, łącząc określoną nazwę pliku z wywołaniem getUrl lub możesz dodać ją do pierwszego parametru. Ścieżka jest względna do katalogu głównego instalacji Magento.
źródło
wstrzyknij kierownika sklepu i po prostu uzyskaj podstawowy adres URL
Uwaga: nie twórz menedżera obiektów zawsze wstrzykuj
źródło
Cóż, jeśli to Magento 2.0.0. Wersja stabilna CE i dowolny obiekt typu „Kontekst” jest już załadowany do klasy Block, tak jak
Magento\Backend\Block\Widget\Context
wtedy wystarczy wywołaćgetStoreManager()->getStore()->getBaseUrl()
funkcję jak poniżej:wewnątrz konstruktora można również przekazywać argumenty takie jak
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
wewnątrz tejgetBaseUrl()
funkcji.Mam nadzieję że to pomoże.
źródło
Prawidłowy sposób uzyskania multimediów w PHTML to:
źródło
Po prostu:
<?php $block->getBaseUrl() ?>
źródło
W swoim głównym katalogu Magento utwórz plik Test.php.
źródło
W pliku klasy bloku dodaj następującą funkcję:
I wywołaj to z pliku szablonu .phtml, wykonując następujące czynności:
źródło
Możesz pobrać Magento2 Base URL, używając tego:
źródło
W magento 2.
Jeśli chcesz uzyskać podstawowy adres URL, możesz użyć poniższego kodu:
Korzystając z objectManager, możesz użyć następującego kodu
źródło
Oto szczegółowy samouczek, jak znaleźć podstawowy adres URL i inne w Magento2. http://www.webmull.com/magento-2-getbase-url/
źródło