마 젠토 2 : 현재 통화 코드 가져 오기


22

Magento 1에서는 다음을 수행하여 현재 통화 코드를 검색 할 수 있습니다.

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

Magento 2에서 권장되는 방법이 무엇인지 궁금합니다.

답변:


31

블록에서

마 젠토 2에서는 사용할 수있는 \Magento\Store\Model\StoreManagerInterface접근 가능한 변수에 저장되어있는을 $_storeManager확장 모든 클래스에 대한 \Magento\Framework\View\Element\Template블록 클래스 (그렇게 가장 Template, Messages, Redirect블록 타입이 아닌 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();
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.