답변:
magento 2에는 'core'모듈이 없습니다. 뷰 파일 (.phtml) 내부에서 다음과 같은 방법으로 얻을 수 있습니다
$ this-> 도우미 ( 'Magento \ Framework \ Pricing \ Helper \ Data')-> 통화 (number_format (50,2), true, false);
currency()메소드는 현재 범위 통화를 사용하여 변환합니다.
number_format()금액을 전달하십시오.$this->helper('Magento\Framework\Pricing\Helper\Data')->currency(50),true,false);
currency($value, $format = true, $includeContainer = true)
우선 뷰 (.phtml) 파일 내에서 통화 형식을 지정하지 말고 도우미 또는 블록 또는 두 가지 조합을 사용하십시오.
허용 된 답변은 number_format전혀 사용해서는 안되는 기능을 사용 합니다. 적어도 나는 그 접근법을 사용하지 않을 것입니다.
모델을 사용해보십시오.
유형의 모델 Magento\Directory\Model\Currency. format()소수점 이하 자릿수와 서식을 담당하는 기능 입니다.
변수를 가정 $model하고 $product인스턴스화 한 예 :
$model->format($product->getPrice(), array('symbol' => ''), false, false)
$금액 옆에 달러 없이 서식을 지정할 경우 소수점 이하 2 자리 입니다. array()상점 통화를 금액에 추가하려면 비워 두십시오.
Magento\Directory\Model\Currency해야하며 왜 사용해야합니까? 현재 상점보기 통화 구성 또는 고객이 선택한 통화를 봅니까?
Currency디렉토리 모듈에서 모델을 보는 방식 은 최종 가격 값을 조작하는 도우미와 같습니다. Framework의 도우미 예제에서는 가격을 상점의 올바른 통화로 변환 할 수 있지만 금액의 정밀도를 제어 할 수 없으며 가격을 사용자 정의하기 위해 클래스를 확장해야합니다. 화폐는 최종 금액을 예상하는 것과 반대이지만 서식, 소수 자릿수 등을 사용자 정의 할 수 있습니다.
당신이하고 싶은 것은 이것을 사용하려는 템플릿 파일의 블록에 " PriceCurrencyInterface " 를 주입하는 것입니다.
template.phtml
<div><?= $block->getFormatedPrice('342.4345') ?>
Item.php (위의 템플릿의 블록 클래스 ... 무엇이든지간에)
<?php
namespace \Whatever
use Magento\Framework\Pricing\PriceCurrencyInterface;
use Magento\Framework\View\Element\Template;
class Item extends Template
{
/** @var PriceCurrencyInterface $priceCurrency */
protected $priceCurrency;
public function __construct(
Template\Context $context,
PriceCurrencyInterface $priceCurrency,
array $data = []
) {
parent::__construct($context, $data);
$this->priceCurrency = $priceCurrency;
}
/**
* Function getFormatedPrice
*
* @param float $price
*
* @return string
*/
public function getFormatedPrice($amount)
{
return $this->priceCurrency->convertAndFormat($amount);
}
현재 상점 로케일에 따라 올바른 형식을 표시 할 수 있다는 이점이 있습니다. 또한 도움이 될 수있는 다른 방법을 제공합니다.
컨테이너 및 정밀도 와 같이 표시하려는 결과를 구성 할 수 있으므로 메소드 서명 을 확인하십시오 .
priceCurrency->convertAndFormat($amount, $includeContainer, $precision)
건배!
뷰 파일 (.phtml) 내부에서 다음과 같은 방법으로 얻을 수 있습니다.
$ price = 5.5; $ this-> 도우미 ( 'Magento \ Framework \ Pricing \ Helper \ Data')-> 통화 ($ price, true, false);
currency($value, $format = true, $includeContainer = true)
$this->함수 내부에서 제안을 호출 할 때 대신 사용할 수 있는 것
가격 도우미 사용
<?php
namespace \Vendor\Module
class MyClass extends Template
{
public $priceHelper;
public function __construct(
Template\Context $context,
\Magento\Framework\Pricing\Helper\Data $priceHelper,
array $data = []
) {
parent::__construct($context, $data);
$this->priceHelper = $priceHelper;
}
public function myCustomFunction($product) {
return $this->priceHelper->currency($product->getPrice(),true,false);
}
}
주어진 제품에서 가격과 통화 기호를 출력합니다.