Wie ist es möglich, den aktuellen Speichernamen in einer benutzerdefinierten Magento 2-Vorlage mit einem benutzerdefinierten Block auszugeben?
Wie ist es möglich, den aktuellen Speichernamen in einer benutzerdefinierten Magento 2-Vorlage mit einem benutzerdefinierten Block auszugeben?
Antworten:
Sie müssen die Instanz von \Magento\Framework\App\Config\ScopeConfigInterface
in Ihrem Block verwenden:
Erstellen Sie die Methode getStoreName()
public function getStoreName()
{
return $this->_scopeConfig->getValue(
'general/store_information/name',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
und rufen Sie Ihre Vorlage auf echo $this->getStoreName()
\Magento\Store\Model\StoreManagerInterface $storeManager
in Konstruktor und public function getStoreName() { return $this->storeManager->getStore()->getName(); }
Anstatt getName()
können Sie verwenden getCode()
, getId()
.
Verwenden Sie den Geschäftsmanager, der Informationen zum aktiven Geschäft enthält. Wenn der benutzerdefinierte Block nicht von Template
Block geerbt wird, fügen Sie die Abhängigkeit von \Magento\Store\Model\StoreManagerInterface
in construct ein.
<?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();
}
}
Dann in der Vorlage:
<?php
/**
* @var $block \VendorName\ModuleName\Block\CustomBlock
*/
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";
?>
Um einen Wert für die Geschäftskonfiguration zu erhalten general/store_information/name
, können Sie Folgendes verwenden
$config = new \Magento\Framework\App\Config\ScopeConfigInterface();
echo $config->getValue('general/store_information/name');
Dies von einem Block oder Helfer aus zu tun, wäre jedoch sauberer. Unten finden Sie eine Hilfsklasse, die in Ihrem eigenen benutzerdefinierten Modul vorhanden wäre
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
);
}
}
Was Sie als Abhängigkeit in Ihre Blockklasse einbauen würden