回答:
magento 2には、「コア」モジュールはありません。これは、ビューファイル(.phtml)内で次の方法で取得できます。
$ this-> helper( 'Magento \ Framework \ Pricing \ Helper \ Data')-> currency(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
、Directoryモジュールでモデルを見ると、最終的な価格値を操作するヘルパーのようなものです。フレームワークのヘルパーの例では、価格をストアの正しい通貨に変換できますが、金額の精度を制御することはできず、クラスを拡張してカスタマイズする必要があります。通貨は最終的な金額を期待するのとは反対ですが、書式設定、10進数の精度などをカスタマイズできます
あなたがしたいのは、これを使用したいテンプレートファイルのブロックに「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-> helper( 'Magento \ Framework \ Pricing \ Helper \ Data')-> currency($ 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);
}
}
これは、特定の製品から価格と通貨記号を出力します。