Answers:
您需要\Magento\Framework\App\Config\ScopeConfigInterface
在代码块中使用的实例:
创建方法 getStoreName()
public function getStoreName()
{
return $this->_scopeConfig->getValue(
'general/store_information/name',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
并调用您的模板 echo $this->getStoreName()
\Magento\Store\Model\StoreManagerInterface $storeManager
在构造器中, public function getStoreName() { return $this->storeManager->getStore()->getName(); }
而不是getName()
可以使用getCode()
,getId()
。
使用商店管理器,其中包含有关活动商店的信息。如果自定义块未从Template
块继承,则\Magento\Store\Model\StoreManagerInterface
在结构中注入依赖。
<?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();
}
}
然后在模板中:
<?php
/**
* @var $block \VendorName\ModuleName\Block\CustomBlock
*/
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";
?>
要获得类似的存储配置值general/store_information/name
,可以使用以下命令
$config = new \Magento\Framework\App\Config\ScopeConfigInterface();
echo $config->getValue('general/store_information/name');
但是,从块或帮助者的角度这样做会更清洁。下面是您自己的自定义模块中将存在的一个助手类
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
);
}
}
您将在块类中将其作为依赖项注入