CakePHPは通貨フォーマットを拡張します

cakephp formatting php
CakePHPは通貨フォーマットを拡張します

他の通貨を含めるために番号ヘルパーを拡張する必要があります。 数値ヘルパーの「addFormat」関数を使用して、これらの通貨を追加するための新しい「CurrenciesHelper」を作成しました。

このヘルパーがこの関数を*即時*実行できるようにする必要があることは知っています。 このフォーマットを実行して追加するためにこれを含めるために何が欠けていますか?

     $this->Number->addFormat('CAD', array(
        'before'=>'$',
        'after' => false,
        'zero' => 0,
        'places' => 2,
        'thousands' => '.',
        'decimals' => ',',
        'negative' => '()',

}

  2  0


ベストアンサー

CakePHP 2.1以降、これを行うためにヘルパーを拡張する必要はありません。 「NumberHelper」は「CakeNumber」クラスにリファクタリングされました。 https://github.com/cakephp/cakephp/blob/9624c27ef47937948da14977fc78b605496062e7/lib/Cake/Utility/CakeNumber.php [コード]を確認すると、フォーマットが静的配列として保存されていることがわかります。

次のように、 `app / Config / core.php`内で通貨形式を設定するのに役立ちます:

App::uses( 'CakeNumber', 'Utility' );

CakeNumber::addFormat(
    'CAD',
    array(
       'before' => '$ ', 'after' => false,
       'zero' => 0, 'places' => 2, 'thousands' => '.',
       'decimals' => ',', 'negative' => '()', 'escape' => true
    )
);

// ... and any more definitions to follow.

通貨定義がコア設定の一部になったら、 `$ this→ Number→ currency($ c、 ‘CAD’)`のような `NumberHelper`を使用して任意のビューで使用できます。

4


前の回答の変更:事後の機能の位置による。 変更する必要がありました:

function __beforeRender(){
}

他のカスタム通貨の上書きを引き起こしていました。

__
構築関数にカプセル化することにより、ヘルパー構築で実行されます。 念のため、親コンストラクタを含めるようにしました。

function __construct() {
    parent::__construct();
    // code goes here
}

__

1


タイトルとURLをコピーしました