Yii2:添加 php sprintf 函数以在 gridview 中格式化值

Yii2: Adding php sprintf function to format value in gridview

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

Getting unknown property: 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')
  ],

这里我也收到错误:

Unknown format type: 0000
throw new InvalidParamException("Unknown format type: $format")

您可以找到 sptrinf here 的文档。

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

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

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

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

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

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