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


Yii2: Adding php sprintf function to format value in gridview

我正在尝试将前导零添加到要在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")

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

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

您可以在此处找到sptrinf的文档。

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

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

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

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