В Magento 1 Mage::getBaseUrl();
, но в Magento 2 я должен передать ответственный тип объекта класса в конструктор.
У меня нет идеи, какой класс я должен пройти?
В пурпурный 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
.Если нет, используйте это:
Или, если вы используете его в шаблоне PHTML, используйте:
источник
\Magento\Framework\View\Element\Template
. Однако в вопросе OP нет ссылки на то, откуда он в данный момент кодирует. Такие как Модель, Помощник, Контроллер и т. Д.В Magneto2: это способ получить URL-ссылку в файле PHTML:
echo $this->getUrl('about-us')
Я надеюсь, что это будет работать для вас
источник
Если вы просто хотите получить URL из корневого каталога вашей установки Magento, вы можете просто использовать getUrl. Он наследуется от класса AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock), поэтому вы можете использовать его в любом своем блоке. Вот пример
Первый параметр - это требуемый путь, а второй задает параметр _secure, если пользователь просматривает через https. Вы можете добавить к пути, связав конкретное имя файла с вызовом getUrl или добавить его к первому параметру. Путь относительно корневого каталога вашей установки Magento.
источник
залить менеджера магазина и просто получить базовый URL
Примечание: не создавайте менеджер объектов, всегда вводите
источник
Хорошо, если это Magento 2.0.0. Стабильная версия CE и любой объект типа "Context" загружаются уже в классе Block, как
Magento\Backend\Block\Widget\Context
тогда, просто вызовитеgetStoreManager()->getStore()->getBaseUrl()
функцию, как показано ниже:внутри конструктора также вы можете передавать аргументы как
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
внутри этойgetBaseUrl()
функции.Надеюсь это поможет.
источник
Правильный способ получения медиа в PHTML:
источник
Просто:
<?php $block->getBaseUrl() ?>
источник
В корне magento создайте файл Test.php.
источник
В вашем файле классов блоков добавьте следующую функцию:
И вызовите это из вашего файла шаблона .phtml со следующим:
источник
Вы можете получить базовый URL Magento2, используя это:
источник
В пурпурный 2.
Если вы хотите получить базовый URL, то вы можете использовать следующий код:
Используя objectManager, вы можете использовать следующий код
источник
Вот подробный урок, который я нашел, чтобы получить базовый URL и другие в Magento2. http://www.webmull.com/magento-2-getbase-url/
источник