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

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

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'は、小数点以下の数。

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた