2013-05-12 70 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