私は通貨記号を取得するために、twl拡張子でintlコンポーネントを使用しています。Sf2:intlコンポーネント、formatCurrency
よくわかりやすいようにhereです。
しかし、私がしたいのは、通貨/ローカルに基づいて価格をフォーマットすることです。
国際コンポーネント(NumberFormatter class)
<?php
namespace SE\AppBundle\Twig;
use Doctrine\ORM\EntityManager;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Intl\Intl;
class PriceExtension extends \Twig_Extension
{
private $em;
private $requestStack;
public function __construct(EntityManager $em, RequestStack $requestStack)
{
$this->em = $em;
$this->requestStack = $requestStack;
}
public function getFilters()
{
return array(
new \Twig_SimpleFilter('price', array($this, 'priceFilter')),
);
}
public function priceFilter($price)
{
$request = $this->requestStack->getCurrentRequest();
$currency_code = $request->cookies->get('currency');
$exchange_rate = $this->em->getRepository('ApiBundle:ExchangeRates')->findOneBy(array('code' => $currency_code));
$price = $price*$exchange_rate->getRate();
// Get the currency symbol
// $symbol = Intl::getCurrencyBundle()->getCurrencySymbol($currency_code);
// $price = $symbol.$price;
// Undefined formatCurrency method
$price = Intl::getCurrencyBundle()->formatCurrency($price, $currency_code);
return $price;
}
public function getName()
{
return 'price_extension';
}
}
どのように私はformatCurrencyメソッドを使用することができる可能性のメソッドformatCurrencyは確かにありますか?
チェック:
だからあなたのコードは次のようになります。私が言ったように、私はコンポーネントを使用しています。しかし、その後、私は間違いを犯した通貨バンドルを手に入れています。私が知る必要があるのは、どのようにコンポーネントからのものを使うことができるかということだけです。 https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php – Brieuc