CakePHP 2.x NumberヘルパーでaddFormatを書く場所

Shunsuke Sawada

お金を扱うアプリ作ってると、通貨記号なんかがでてきます。
これですね。

CakePHPのNumberHelperが助けてくれます。

1
echo $this->Number->currency(数字, '通貨コード');

こんな感じ。
でもデフォルトで助けてくれるのは、この3通過だけ。

EUR €
GBP £
USD $

これにJPY...¥とか足す場合は自分でやらねばなりません。

Viewファイルで

1
$this->Number->addFormat('JPY', array('before' => '¥ '));

とかする。だけど全部のビューファイルでそんなことするの面倒だから、
一回で済ましたいときは、AppController.phpに書きます。

でもコントローラでは$this->Number->addFormatは使えないので、
このように。

1
2
3
4
5
6
    public function beforeRender() {
        // called as CakeNumber
        App::uses('CakeNumber', 'Utility');
        CakeNumber::addFormat('JPY', array('before' => '¥', 'places' => 0));
        CakeNumber::addFormat('AUD', array('before' => '$', 'places' => 2));
    }

'places'は、小数点以下の数。

Shunsuke Sawada

おすすめの記事

CakePHP 2.x JSヘルパーでajax通信(ajax helperは使わない)
20
Rails4でQiita投稿ボタンをつくった
18
紙のデザイナーがウェブ開発できるようになるまでに必要なこと
451