Yii2:如何将输入数字格式化为货币es-AR?

时间:2017-09-18 02:12:50

标签: yii2 currency-formatting

我有一个带有此字段的 _form.php 文件:

<?= 
$form->field($model, 'price')
->textInput([
    'class' => 'form-control',
    'type' => 'number'
])
?>

价格格式为1234.50。我希望格式为 es-AR ,如下所示:1234,50

index.php GridView 中,我使用此代码并且效果很好所以我想在 _form 中执行相同操作但它没有用。

[
    'attribute' => 'price',
    'value' => function($myModel) {
        $myFormat = new NumberFormatter("es-AR", NumberFormatter::CURRENCY);
        return  $myFormat->formatCurrency($myModel->price, "ARS");
    },
]

2 个答案:

答案 0 :(得分:0)

有两种方法可以做到:

  • 在价格字段中添加额外的类,并使用javascript转换为您想要的格式(记得在提交时将其返回)
  • 创建priceFormat()并在AfterFind事件中使用它并记得使用priceUnFormat()在BeforeSave上返回十进制

答案 1 :(得分:0)

使用:

$form->field($model, 'attr', ['inputOptions' => ['value' => Yii::$app->formatter->asDecimal($model->attr)]])