Di Magento 1 Mage::getBaseUrl();
, tetapi di Magento 2 saya harus melewati tipe objek kelas yang bertanggung jawab dalam konstruktor.
Saya tidak tahu kelas mana yang harus saya lewati?
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
.Jika tidak, gunakan ini:
Atau jika Anda menggunakannya dalam templat PHTML gunakan:
sumber
\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
sumber
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
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.
sumber
menyuntikkan manajer toko dan cukup mendapatkan url dasar
Catatan: jangan membuat manajer objek selalu menyuntikkan
sumber
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 panggilgetStoreManager()->getStore()->getBaseUrl()
fungsi seperti di bawah ini:di dalam konstruktor juga Anda bisa menyampaikan argumen seperti
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
di dalamgetBaseUrl()
fungsi ini .Semoga ini membantu.
sumber
Cara yang benar untuk mendapatkan media di PHTML adalah:
sumber
Secara sederhana:
<?php $block->getBaseUrl() ?>
sumber
Di root magento Anda buat file Test.php.
sumber
Dalam file kelas blok Anda, tambahkan fungsi berikut:
Dan panggil ini dari file template .phtml Anda dengan yang berikut:
sumber
Anda bisa mendapatkan url Magento2 Base dengan menggunakan ini:
sumber
Di Magento 2.
Jika Anda ingin mendapatkan URL Basis, maka Anda dapat menggunakan kode di bawah ini:
Dengan menggunakan objectManager, Anda dapat menggunakan kode berikut
sumber
Ini adalah tutorial terperinci yang saya temukan untuk mendapatkan url dasar dan yang lainnya di Magento2. http://www.webmull.com/magento-2-getbase-url/
sumber