Answers:
在magento 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重写)
如果您希望基本网址不包含 index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
详见 magento2 get base url and media url and static url
使用对象管理器
基本网址:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
没有index.php的基本网址
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
要获取媒体基本网址:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
获取链接网址:
$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
。如果您想要在phtml的基本网址,则StoreManagerInterface
在块插入
只需使用此命令即可使用扩展类\Magento\Framework\View\Element\Template
。
$this->getBaseUrl()
如果没有,请使用以下命令:
$this->_storeManager->getStore()->getBaseUrl()
或者,如果您在PHTML模板中使用它,请使用:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
。但是,OP的问题并未提及他当前从何处进行编码。例如模型,助手,控制器等
在Magneto2中:这是在PHTML文件中获取网址链接的方法:
echo $this->getUrl('about-us')
我希望它对你有用
如果您只想从Magento安装的根目录中获取URL,则可以使用getUrl。它继承自AbstractBlock类(Magento \ Framework \ View \ Element \ AbstractBlock),因此您可以在任何块中使用它。这是一个例子
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
第一个参数是所需的路径,如果用户正在浏览https,则第二个参数设置_secure选项。您可以通过将特定的文件名串联到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稳定版本和任何“上下文”类型的对象都已经在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>')
您可以使用以下方法获取Magento2基本网址:
$this->_storeManager->getStore()->getBaseUrl()
在magento 2。
如果要获取基本url,则可以使用以下代码:
$this->_storeManager->getStore()->getBaseUrl()
通过使用objectManager,可以使用以下代码
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
这是我发现的详细教程,可以在Magento2中获得基本URL和其他URL。 http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}