Magento 2:获取当前货币代码


22

在Magento 1中,您可以通过执行以下操作来检索当前货币代码:

Mage::app()->getStore()->getCurrentCurrencyCode()

我想知道在Magento 2中推荐这样做的方法是什么。

Answers:


31

在一个街区

在Magento 2,则可以使用\Magento\Store\Model\StoreManagerInterface存储在可访问的变量$_storeManager用于扩展每类\Magento\Framework\View\Element\Template所以大部分的块类(的TemplateMessagesRedirect块类型,但不Text也不TextList)。

通过这种方式,您可以在块中直接键入以下代码以获取当前货币代码:

$this->_storeManager->getStore()->getCurrentCurrency()->getCode()

无需\Magento\Store\Model\StoreManagerInterface在您的构造中插入,因为它是可以从任何块类访问的变量。

在任何其他班级

您可以\Magento\Store\Model\StoreManagerInterface在构造函数中注入:

protected $_storeManager;

public function __construct(\Magento\Store\Model\StoreManagerInterface $storeManager)
{
    $this->_storeManager = $storeManager;
}

然后调用与该块相同的函数:

$this->_storeManager->getStore()->getCurrentCurrency()->getCode()

1
如何在自定义模块的phtml页面中调用默认货币符号?
Purushotam Sharma,

5

这从中获得了灵感,Magento\Framework\Pricing\Render\Amount并且在我的案例中效果很好(就像Magento一样):

protected $_priceCurrency;

public function __construct(
  ...
  \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency,
  ...
)
{           
  $this->_priceCurrency = $priceCurrency;
  ...
}

/**
 * Get current currency code
 *
 * @return string
 */ 
public function getCurrentCurrencyCode()
{
  return $this->_priceCurrency->getCurrency()->getCurrencyCode();
}

您还可以获取货币符号:

/**
 * Get current currency symbol
 *
 * @return string
 */ 
public function getCurrentCurrencySymbol()
{
  return $this->_priceCurrency->getCurrency()->getCurrencySymbol();
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.