Loos to świetne rozwiązanie, ale pojawia się następujący błąd: Błąd krytyczny: wywołanie funkcji członka dispatch () na obiekcie niebędącym obiektem w /vendor/magento/framework/View/Element/AbstractBlock.php w linii 637.
Dominik Barann
wyczyść folder var / generation
Marius
1
Podejście @Marius jest słuszne, ale dla mnie nie zadziałało. Zamiast Użyłem \Magento\Store\Model\StoreManagerInterface $storeManager w konstruktorze i public function getStoreName() { return $this->storeManager->getStore()->getName(); } Zamiast getName()można użyć getCode(), getId().
Razvan
9
Użyj menedżera sklepu, który przechowuje informacje o aktywnym sklepie. Jeśli blok niestandardowy nie jest dziedziczony z Templatebloku, wstaw zależność \Magento\Store\Model\StoreManagerInterfacew konstrukcji.
<?phpnamespaceVendorName\ModuleName\Block;classCustomBlockextends \Magento\Framework\View\Element\Template{/**
* Get current store name.
*
* @return string
*/publicfunction getCurrentStoreName(){return $this->_storeManager->getStore()->getName();}}
Następnie w szablonie:
<?php/**
* @var $block \VendorName\ModuleName\Block\CustomBlock
*/
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";?>
Odpowiedzi:
musisz użyć wystąpienia
\Magento\Framework\App\Config\ScopeConfigInterface
w swoim bloku:Utwórz metodę
getStoreName()
i zadzwoń do swojego szablonu
echo $this->getStoreName()
źródło
\Magento\Store\Model\StoreManagerInterface $storeManager
w konstruktorze ipublic function getStoreName() { return $this->storeManager->getStore()->getName(); }
ZamiastgetName()
można użyćgetCode()
,getId()
.Użyj menedżera sklepu, który przechowuje informacje o aktywnym sklepie. Jeśli blok niestandardowy nie jest dziedziczony z
Template
bloku, wstaw zależność\Magento\Store\Model\StoreManagerInterface
w konstrukcji.Następnie w szablonie:
źródło
Aby uzyskać wartość konfiguracji sklepu
general/store_information/name
, możesz użyć następującychJednak robienie tego z bloku lub pomocnika byłoby czystsze. Poniżej znajduje się klasa pomocnicza, która istniałaby we własnym module niestandardowym
Który wstrzyknąłbyś jako zależność w swojej klasie bloków
źródło