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