Loos como uma ótima solução, mas recebo o seguinte erro: Erro fatal: Chame uma função de membro dispatch () em um não-objeto em /vendor/magento/framework/View/Element/AbstractBlock.php na linha 637.
Dominik Barann
limpe a pasta var / generation
Marius
1
A abordagem da @Marius está certa, mas não funcionou para mim. Em vez disso eu usei \Magento\Store\Model\StoreManagerInterface $storeManager no construtor e public function getStoreName() { return $this->storeManager->getStore()->getName(); } , em vez de getName()você pode usar getCode(), getId().
Razvan
9
Use o gerente da loja, que contém informações sobre a loja ativa. Se o bloco personalizado não for herdado do Templatebloco, injete dependência \Magento\Store\Model\StoreManagerInterfacena construção.
<?php
namespaceVendorName\ModuleName\Block;classCustomBlockextends \Magento\Framework\View\Element\Template
{/**
* Get current store name.
*
* @return string
*/publicfunction getCurrentStoreName(){return $this->_storeManager->getStore()->getName();}}
Em seguida, no modelo:
<?php
/**
* @var $block \VendorName\ModuleName\Block\CustomBlock
*/
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";?>
Respostas:
você precisa usar a instância de
\Magento\Framework\App\Config\ScopeConfigInterface
no seu bloco:Crie o método
getStoreName()
e chame seu modelo
echo $this->getStoreName()
fonte
\Magento\Store\Model\StoreManagerInterface $storeManager
no construtor epublic function getStoreName() { return $this->storeManager->getStore()->getName(); }
, em vez degetName()
você pode usargetCode()
,getId()
.Use o gerente da loja, que contém informações sobre a loja ativa. Se o bloco personalizado não for herdado do
Template
bloco, injete dependência\Magento\Store\Model\StoreManagerInterface
na construção.Em seguida, no modelo:
fonte
Para obter um valor de configuração da loja como
general/store_information/name
você pode usar o seguinteNo entanto, fazer isso de um bloco ou auxiliar seria mais limpo. Abaixo está uma classe auxiliar que existiria em seu próprio módulo personalizado
Que você injetaria como dependência em sua classe de bloqueio
fonte