如何在GridView(yii)中将列格式化为货币?

时间:2013-05-12 16:37:48

标签: yii yii-extensions

大家好,感谢您的阅读。 我想知道如何将数字格式化为货币或者只是简单地附加€。我在yii框架的管理页面上的gridview中工作。 我有这个例如

'columns'=>array(
        'title',
            array(
                'name'=>'cost',
                'value'=>'$data->cost',
            )

3 个答案:

答案 0 :(得分:8)

Yii方式是使用Yii's existing currency formatter,如下所示:

array(
      'name'=>'cost',
      'value'=>'Yii::app()->numberFormatter->formatCurrency($data->cost, "EUR")',
     )

答案 1 :(得分:2)

您可以在值中使用php函数和一些静态文本。例如:

'columns'=>array(
        'title',
            array(
                'name'=>'cost',
                'value'=>'$data->cost . " €" ',
            )

如果您需要更多地使用这种格式,我建议将自定义函数写入控制器或使用自定义货币函数扩展CFormatter并将其用作值。请阅读下面的yii主页手册。 http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/

答案 2 :(得分:1)

我使用php的money_format()来获得正确的格式。

看起来像这样:

'columns'=>array(
    'title',
        array(
            'name'=>'cost',
            'value'=>'money_format("%!i", $data->cost)',
        )

您可以通过在调用money_format()之前设置区域设置来指定货币,如下所示:

setlocale(LC_MONETARY, 'ja_JP');

ja_JP是日元,仅作为一个例子。 More here.