Yii2:添加php sprintf函数来格式化gridview中的值

时间:2015-03-24 18:16:03

标签: php yii2

我正在尝试将前导零添加到要在gridview中显示的数字。 我正在尝试这个代码,但它会抛出错误:

  

获取未知属性:app \ models \ OpdTestBill :: 0000

我使用的代码是这样的:

[
'attribute'=>'dhanwantri_bill_number',
'format'=>'raw',
'value'=>sprintf('%04d','dhanwantri_bill_number')
],

实现此目的的正确语法是什么?

感谢。

变化

[ 'attribute'=>'dhanwantri_bill_number',
   'format'=>sprintf('%04d','dhanwantri_bill_number')
  ],

我也遇到错误:

  

未知格式类型:0000
  抛出新的InvalidParamException("未知格式类型:$ format")

2 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案,任何有问题的人都会发现它很有用:

[
    'attribute' => 'dhanwantri_bill_number',
    'value'     => function($model) {
        return sprintf('%04d', $model->dhanwantri_bill_number);
    }
],

答案 1 :(得分:0)

您可以找到sptrinf here的文档。

第一个参数是用于输出的格式,如果值为< 1000,则选择为带前导零的整数。 以下参数必须与格式匹配。

  

sprintf('%04d','dhanwantri_bill_number')

您将整数设置为输出,但将字符串作为输入。 sprintf不知道该怎么做,因为它正在寻找一个整数。

sprintf('%04d',12);
// Output:
0012