我需要扩展数字助手以包含其他货币。使用数字助手中的“addFormat”函数,我创建了一个新的“CurrenciesHelper”来添加这些货币。
<?php
class CurrenciesHelper extends NumberHelper {
我知道我需要让这个助手立即运行此功能 。我缺少什么来包含它,所以它运行并添加这种格式?
$this->Number->addFormat('CAD', array(
'before'=>'$',
'after' => false,
'zero' => 0,
'places' => 2,
'thousands' => '.',
'decimals' => ',',
'negative' => '()',
}
答案 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 }