作者:小天 | 来源:互联网 | 2023-08-17 17:22
我正在尝试修改从Yii框架网站上的Gii教程获得的GridView字段。
GII PAGE
我对填充字段的外观不满意,因此我尝试使用一些分隔符对其进行转换。
这是“国家/地区视图”的index.php
=
GridView::widget([
'dataProvider' => $dataProvider,'filterModel' => $searchModel,'columns' => [
['class' => 'yii\grid\SerialColumn'],'code','name',[
'label' => 'Population','value' => 'population',/* 'value' => Yii::$app->formatter->asDecimal((integer)population) */
/* 'value' => Yii::$app->formatter->asDecimal($model->population) */
/* 'value' => Yii::$app->formatter->asDecimal('population') */
/*'value' => Yii::$app()->format->number('population')*/
],['class' => 'yii\grid\actionColumn'],],]);
?>
我不知道为什么在CountryModel中人口字段被列为整数:
['population'],'integer'
然后当我尝试在视图中转换它时,我遇到了一些问题,因为“人口”基本上是一个字符串。
我评论了一些尝试。
您可以使用yii\i18n\Formatter
如果使用的是 common\config\main.php
,请转到app-advanced
;如果使用的是 app/config/main.php
,请转到app-basic
,然后添加在components
数组下。
'formatter' => [
'thousandSeparator' => ',',],
现在您可以像下面这样格式化任何给定的数字
=
GridView::widget([
'dataProvider' => $dataProvider,'filterModel' => $searchModel,'columns' => [
['class' => 'yii\grid\SerialColumn'],'code','name',[
'attribute' => 'population','label' => 'Population','value' => function($model){
return Yii::$app->formatter->asInteger($model->population); //Output 1,000
},['class' => 'yii\grid\ActionColumn'],]);
?>
更新:就像评论中提到的那样,您还可以使用这两种技术来格式化值:
//Gridview
....
[
'attribute' => 'population','format' => 'integer',....
和/或:
//Gridview
....
'population:integer',....