मैं Magento2 में संख्या को मुद्रा प्रारूप में बदलना चाहता हूं, जैसे हम इसके साथ Magento 1.x में करते हैं
$_coreHelper = $this->helper('core');
$_coreHelper->currency(number_format(50,2),true,false)
Magento2 में समान कैसे करें?
मैं Magento2 में संख्या को मुद्रा प्रारूप में बदलना चाहता हूं, जैसे हम इसके साथ Magento 1.x में करते हैं
$_coreHelper = $this->helper('core');
$_coreHelper->currency(number_format(50,2),true,false)
Magento2 में समान कैसे करें?
जवाबों:
Magento 2 में, कोई 'कोर' मॉड्यूल नहीं हैं। आप इसे दृश्य फ़ाइल (.phtml) के अंदर निम्न तरीके से प्राप्त कर सकते हैं
$ This-> सहायक ( 'Magento \ फ्रेमवर्क \ मूल्य निर्धारण \ हेल्पर \ डाटा') -> मुद्रा (number_format (50,2), सच है, झूठी);
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
निर्देशिका मॉड्यूल में मॉडल देखता हूं वह अंतिम मूल्य मूल्य में हेरफेर करने के लिए सहायक की तरह है। फ्रेमवर्क से सहायक के उदाहरण में आप मूल्य को स्टोर की सही मुद्रा में बदलने में सक्षम होंगे, लेकिन आपके पास राशि की शुद्धता पर कोई नियंत्रण नहीं है और इसे अनुकूलित करने के लिए कक्षाओं का विस्तार करना होगा। मुद्रा विपरीत है जहां यह अंतिम राशि की उम्मीद करती है, लेकिन आपको प्रारूपण, दशमलव परिशुद्धता, आदि को अनुकूलित करने की अनुमति देती है
आप क्या करना चाहते हैं " 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) के अंदर इस तरह से प्राप्त कर सकते हैं।
$ मूल्य = 5.5; $ This-> सहायक ( 'Magento \ फ्रेमवर्क \ मूल्य निर्धारण \ हेल्पर \ डाटा') -> मुद्रा ($ मूल्य, सच है, झूठी);
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);
}
}
यह किसी दिए गए उत्पाद से एक मूल्य और मुद्रा प्रतीक का उत्पादन करता है।