Ответы:
В пурпурный 2.
Если вы хотите получить базовый URL-адрес, попробуйте следующий код:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Где $this->_storeManager
экземпляр\Magento\Store\Model\StoreManagerInterface
этот код даст вам результат
http://www.example.com ( если включена перезапись Seo )
И http://www.example.com/index.php ( если перезапись Seo не включена )
Если вы хотите базовый URL без index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Подробности смотрите на magento2 get base url and media url and static url
Использование диспетчера объектов
Базовый URL:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
Базовый URL без index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Для получения медиа базы URL:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
для получения ссылки URL:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Для получения $this->_storeManager
Вы должны позвонить вколотить\Magento\Store\Model\StoreManagerInterface $storeManager
в __construct( )
функции в классе блока
как :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Кроме того, вы можете получить базовый URL непосредственно при phtml
использовании прямого вызова object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Примечание: Directly call of object manager is not good idea
. Если вы хотите, чтобы базовый URL-адрес в phtml, тогда вставьте StoreManagerInterface
в блок
Просто используйте эту команду вместе с классом, который расширяет \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
Если нет, используйте это:
$this->_storeManager->getStore()->getBaseUrl()
Или, если вы используете его в шаблоне PHTML, используйте:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. Однако в вопросе OP нет ссылки на то, откуда он в данный момент кодирует. Такие как Модель, Помощник, Контроллер и т. Д.
В Magneto2: это способ получить URL-ссылку в файле PHTML:
echo $this->getUrl('about-us')
Я надеюсь, что это будет работать для вас
Если вы просто хотите получить URL из корневого каталога вашей установки Magento, вы можете просто использовать getUrl. Он наследуется от класса AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock), поэтому вы можете использовать его в любом своем блоке. Вот пример
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
Первый параметр - это требуемый путь, а второй задает параметр _secure, если пользователь просматривает через https. Вы можете добавить к пути, связав конкретное имя файла с вызовом getUrl или добавить его к первому параметру. Путь относительно корневого каталога вашей установки Magento.
залить менеджера магазина и просто получить базовый URL
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Примечание: не создавайте менеджер объектов, всегда вводите
Хорошо, если это Magento 2.0.0. Стабильная версия CE и любой объект типа "Context" загружаются уже в классе Block, как Magento\Backend\Block\Widget\Context
тогда, просто вызовите getStoreManager()->getStore()->getBaseUrl()
функцию, как показано ниже:
$context->getStoreManager()->getStore()->getBaseUrl()
внутри конструктора также вы можете передавать аргументы как \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
внутри этой getBaseUrl()
функции.
Надеюсь это поможет.
В корне magento создайте файл 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();
В вашем файле классов блоков добавьте следующую функцию:
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 '#';
}
}
И вызовите это из вашего файла шаблона .phtml со следующим:
$block->getImageUrl('<relative image path>')
Вы можете получить базовый URL Magento2, используя это:
$this->_storeManager->getStore()->getBaseUrl()
В пурпурный 2.
Если вы хотите получить базовый URL, то вы можете использовать следующий код:
$this->_storeManager->getStore()->getBaseUrl()
Используя objectManager, вы можете использовать следующий код
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Вот подробный урок, который я нашел, чтобы получить базовый URL и другие в Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}