Bagaimana mungkin untuk menampilkan nama toko saat ini di templat khusus Magento 2 dengan blok khusus?
Bagaimana mungkin untuk menampilkan nama toko saat ini di templat khusus Magento 2 dengan blok khusus?
Jawaban:
Anda perlu menggunakan instance dari \Magento\Framework\App\Config\ScopeConfigInterface
di blok Anda:
Buat metodenya getStoreName()
public function getStoreName()
{
return $this->_scopeConfig->getValue(
'general/store_information/name',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
dan hubungi template Anda echo $this->getStoreName()
\Magento\Store\Model\StoreManagerInterface $storeManager
dalam konstruktor dan public function getStoreName() { return $this->storeManager->getStore()->getName(); }
Alih-alih getName()
Anda dapat menggunakan getCode()
, getId()
.
Gunakan manajer toko, yang menyimpan informasi tentang toko aktif. Jika blok khusus tidak diwarisi dari Template
blok, menyuntikkan dependensi \Magento\Store\Model\StoreManagerInterface
dalam konstruksi.
<?php
namespace VendorName\ModuleName\Block;
class CustomBlock extends \Magento\Framework\View\Element\Template
{
/**
* Get current store name.
*
* @return string
*/
public function getCurrentStoreName()
{
return $this->_storeManager->getStore()->getName();
}
}
Kemudian di templat:
<?php
/**
* @var $block \VendorName\ModuleName\Block\CustomBlock
*/
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";
?>
Untuk mendapatkan nilai konfigurasi toko seperti general/store_information/name
Anda dapat menggunakan yang berikut ini
$config = new \Magento\Framework\App\Config\ScopeConfigInterface();
echo $config->getValue('general/store_information/name');
Namun, melakukan ini dari blok atau helper akan lebih bersih. Di bawah ini adalah kelas pembantu yang akan ada di modul khusus Anda sendiri
namespace [Namespace]\[Module]\Helper;
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
/**
* Retrieve store name
*
* @return string|null
*/
public function getStoreName()
{
return $this->scopeConfig->getValue(
'general/store_information/name',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
}
Yang mana Anda akan menyuntikkan sebagai dependensi di kelas blok Anda