Jawaban:
Di Magento 2.
Jika Anda ingin mendapatkan URL Basis, maka Anda dapat mencoba kode di bawah ini:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Di mana $this->_storeManager
contoh\Magento\Store\Model\StoreManagerInterface
kode di atas ini akan memberi Anda hasil
http://www.example.com ( Jika Seo menulis ulang diaktifkan )
Dan http://www.example.com/index.php ( Jika Seo menulis ulang tidak diaktifkan )
Jika Anda ingin URL Basis tanpa index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Lihat detailnya di magento2 get base url and media url and static url
Menggunakan Object Manager
Url Basis:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
URL Basis tanpa index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Untuk mendapatkan url basis media:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
untuk mendapatkan url tautan:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Untuk mendapatkan $this->_storeManager
Anda harus memanggil inject\Magento\Store\Model\StoreManagerInterface $storeManager
di __construct( )
fungsi di kelas blok
seperti :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Juga, Anda bisa mendapatkan url dasar langsung di phtml
menggunakan panggilan langsung object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Catatan: Directly call of object manager is not good idea
. Jika Anda ingin url dasar di phtml, maka suntikkan StoreManagerInterface
di blok
Cukup gunakan perintah ini dengan Anda menggunakan kelas yang diperluas \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
Jika tidak, gunakan ini:
$this->_storeManager->getStore()->getBaseUrl()
Atau jika Anda menggunakannya dalam templat PHTML gunakan:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. Namun pertanyaan OP tidak membuat referensi dari mana ia saat ini mengkodekan. Seperti Model, Helper, Controller, dll.
Di Magneto2: Ini adalah cara untuk mendapatkan tautan Url dalam file PHTML:
echo $this->getUrl('about-us')
Saya harap ini akan berhasil untuk Anda
Jika Anda hanya ingin mendapatkan URL dari direktori root instalasi Magento, Anda bisa menggunakan getUrl. Ini mewarisi dari kelas AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock) sehingga Anda dapat menggunakannya sebagai salah satu dari blok Anda. Berikut ini sebuah contoh
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
Parameter pertama adalah jalur yang Anda inginkan, dan yang kedua menetapkan opsi _secure jika pengguna menjelajahi https. Anda dapat menambahkan ke path dengan menggabungkan nama file tertentu ke panggilan getUrl atau Anda dapat menambahkannya ke parameter pertama. Path relatif terhadap direktori root instalasi Magento Anda.
menyuntikkan manajer toko dan cukup mendapatkan url dasar
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Catatan: jangan membuat manajer objek selalu menyuntikkan
Nah jika itu Magento 2.0.0. Versi CE Stable dan segala jenis objek "Konteks" sudah dimuat dalam kelas Blok seperti Magento\Backend\Block\Widget\Context
kemudian panggil getStoreManager()->getStore()->getBaseUrl()
fungsi seperti di bawah ini:
$context->getStoreManager()->getStore()->getBaseUrl()
di dalam konstruktor juga Anda bisa menyampaikan argumen seperti \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
di dalam getBaseUrl()
fungsi ini .
Semoga ini membantu.
Di root magento Anda buat file 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();
Dalam file kelas blok Anda, tambahkan fungsi berikut:
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 '#';
}
}
Dan panggil ini dari file template .phtml Anda dengan yang berikut:
$block->getImageUrl('<relative image path>')
Anda bisa mendapatkan url Magento2 Base dengan menggunakan ini:
$this->_storeManager->getStore()->getBaseUrl()
Di Magento 2.
Jika Anda ingin mendapatkan URL Basis, maka Anda dapat menggunakan kode di bawah ini:
$this->_storeManager->getStore()->getBaseUrl()
Dengan menggunakan objectManager, Anda dapat menggunakan kode berikut
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Ini adalah tutorial terperinci yang saya temukan untuk mendapatkan url dasar dan yang lainnya di Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}