CakePHP扩展了货币格式

时间:2011-05-24 16:55:44

标签: php cakephp formatting

我需要扩展数字助手以包含其他货币。使用数字助手中的“addFormat”函数,我创建了一个新的“CurrenciesHelper”来添加这些货币。

<?php

class CurrenciesHelper extends NumberHelper {

我知道我需要让这个助手立即运行此功能 。我缺少什么来包含它,所以它运行并添加这种格式?

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

}

2 个答案:

答案 0 :(得分:4)

启动CakePHP 2.1,您无需扩展帮助程序即可完成此操作。 NumberHelper已将CakeNumber重新计算在app/Config/core.php级。如果您浏览the code,则可以看到格式现在存储为静态数组。

这有助于我们在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. 中配置货币格式,如下所示:

NumberHelper

一旦您的货币定义成为核心配置的一部分,您就可以使用$this->Number->currency( $c, 'CAD' )之类的{{1}}在任何视图中使用它们。

答案 1 :(得分:1)

以前的答案已经改变:由于功能的位置,事后。不得不改为:

function __beforeRender(){
}

导致其他自定义货币被覆盖。

  

通过将其封装在构造中   功能,它运行在帮助器上   施工。我肯定会包括   以防万一的父构造函数。

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