回答:
magento 2。
Base 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(ソ・リライトが使用可能にされていない場合)
なしでベース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();
index.phpなしのベースURL
$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
injectを呼び出す必要があり ます\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でベースURLが必要な場合はStoreManagerInterface
、ブロックで注入します
このコマンドは、拡張するクラスを使用しているときに使用します\Magento\Framework\View\Element\Template
。
$this->getBaseUrl()
そうでない場合は、これを使用します:
$this->_storeManager->getStore()->getBaseUrl()
または、PHTMLテンプレートで使用している場合は、次を使用します。
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
。しかし、OPの質問は、彼が現在コーディングしている場所について言及していません。モデル、ヘルパー、コントローラーなど
Magneto2の場合:これは、PHTMLファイルでURLリンクを取得する方法です。
echo $this->getUrl('about-us')
私はそれがあなたのために働くことを願っています
MagentoインストールのルートディレクトリからURLを取得するだけの場合は、getUrlを使用できます。AbstractBlockクラス(Magento \ Framework \ View \ Element \ AbstractBlock)を継承しているため、任意のブロックで使用できます。ここに例があります
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
最初のパラメーターは目的のパスであり、2番目はユーザーが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安定バージョンと「コンテキスト」タイプのオブジェクトは、ブロッククラスに既にロードされており、次のような関数を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 BaseのURLを取得できます。
$this->_storeManager->getStore()->getBaseUrl()
magento 2。
Base 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);
}