2013-05-12 3 views
2

Привет всем и спасибо за чтение. Мне было интересно, как я могу форматировать число в валюту или просто просто присоединить € в конце. Я работаю в gridview на странице администратора в структуре yii. у меня есть это как, например,как форматировать столбец в качестве валюты в 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

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's 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. public function init() {setlocale (LC_MONETARY, 'ja_JP'); }, но вы можете назвать его почти везде, пока он выполняется до money_format(). Лично я считаю, что этот * должен быть установлен YII, когда вы устанавливаете другой язык в своей конфигурации. – ippi

+0

спасибо, он работает и его правильное решение также – Gunnit

+0

Это решение работает на сервере, но если вы используете Windows на локальном хосте, то получаете «Fatal error: Call to undefined function money_format()». См. Например: http://stackoverflow.com/questions/6369887/alternative-to-money-format-function-in-php-on-windows-platform –