Odpowiedzi:
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
.
$this->getBaseUrl()
Jeśli nie, użyj tego:
$this->_storeManager->getStore()->getBaseUrl()
Lub jeśli używasz go w szablonie PHTML użyj:
$block->getBaseUrl()
\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
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
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
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.
wstrzyknij kierownika sklepu i po prostu uzyskaj podstawowy adres URL
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Uwaga: nie twórz menedżera obiektów zawsze wstrzykuj
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:
$context->getStoreManager()->getStore()->getBaseUrl()
wewnątrz konstruktora można również przekazywać argumenty takie jak \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
wewnątrz tej getBaseUrl()
funkcji.
Mam nadzieję że to pomoże.
W swoim głównym katalogu Magento utwórz plik 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();
W pliku klasy bloku dodaj następującą funkcję:
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 '#';
}
}
I wywołaj to z pliku szablonu .phtml, wykonując następujące czynności:
$block->getImageUrl('<relative image path>')
Możesz pobrać Magento2 Base URL, używając tego:
$this->_storeManager->getStore()->getBaseUrl()
W magento 2.
Jeśli chcesz uzyskać podstawowy adres URL, możesz użyć poniższego kodu:
$this->_storeManager->getStore()->getBaseUrl()
Korzystając z objectManager, możesz użyć następującego kodu
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Oto szczegółowy samouczek, jak znaleźć podstawowy adres URL i inne w Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}