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\ScopeConfigInterfacein 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 TemplateBlock geerbt wird, fügen Sie die Abhängigkeit von \Magento\Store\Model\StoreManagerInterfacein 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