2013-05-12 67 views
2

大家好,感谢您的阅读。 我想知道如何将一个数字格式化为一种货币,或者只需在最后附上€。我正在yii框架的管理页面上使用gridview。 我有这个作为例如如何在GridView中将列格式化为货币(yii)?

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

回答

7

的Yii的方式是使用Yii's existing currency formatter,像这样:

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

yhea这是我正在寻找,这是yii的方式 – Gunnit 2013-05-13 13:18:42

2

您可以使用PHP的功能和价值的一些静态文本。例如:

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

如果你需要使用这种格式,甚至更多,我建议编写自定义功能控制器或自定义货币功能延伸CFormatter并用它作为价值。请阅读下面的yii主页手册。 http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/

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.

+0

我把它在我的SiteController。公共函数init(){setlocale(LC_MONETARY,'ja_JP'); }但只要在money_format()之前执行,就可以在任何地方调用它。就我个人而言,当你在配置中设置另一种语言时,我认为这应该由YII设置。 – ippi 2013-05-13 09:56:07

+0

谢谢,它的工作原理及其正确的解决方案 – Gunnit 2013-05-13 13:18:06

+0

此解决方案在服务器上工作,但如果您在本地主机上使用Windows,则会收到“致命错误:调用未定义函数money_format()”。请参阅例如:http://stackoverflow.com/questions/6369887/alternative-to-money-format-function-in-php-on-windows-platform – 2016-03-04 13:11:46