Magento 1에서는 다음을 수행하여 현재 통화 코드를 검색 할 수 있습니다.
Mage::app()->getStore()->getCurrentCurrencyCode()
Magento 2에서 권장되는 방법이 무엇인지 궁금합니다.
Magento 1에서는 다음을 수행하여 현재 통화 코드를 검색 할 수 있습니다.
Mage::app()->getStore()->getCurrentCurrencyCode()
Magento 2에서 권장되는 방법이 무엇인지 궁금합니다.
답변:
마 젠토 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()
이것은 영감을 필요로 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();
}