Відповіді:
У магенто 2.
Якщо ви хочете отримати URL-адресу Base, ви можете спробувати нижче код:
/** * @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
. Однак питання ОП не посилається на те, звідки він зараз кодується. Такі як модель, Helper, Controller тощо
У 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 і будь-який тип об'єкту "Контекст" завантажуються вже в клас "Блок", як 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-адресу Base, тоді ви можете скористатися наведеним нижче кодом:
$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);
}