Yii2 GridView属性格式由不同的属性值定义

时间:2018-06-11 12:45:25

标签: php gridview yii2 format

我想根据db字段值在GridView中定义属性的格式。我试着像这样的例子:

'format' => function ($model) {return $model->format;}, // it should return 'boolean'

但我也尝试了很多其他方法,但它没有用。我得到了:

  

PHP注意 - yii \ base \ ErrorException

     

尝试获取非对象的属性

如果我只是将format作为属性返回,那么它的工作没有任何问题。它似乎不在format部分接受它。 无论如何我有可能想要实现的目标吗?你能指点我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

不支持Closure

format s。您可以使用raw格式,并在Closure value中格式化[ 'attribute' => 'name', 'type' => 'raw', 'value' => function ($model) { $format = 'as' . ucfirst($model->format); return Yii::$app->formatter->$format($model->name); }, ],

{{1}}

答案 1 :(得分:0)

参考Yii2 Formatter

示例:

<?= GridView::widget([
     'id' => 'grid-list',
     'dataProvider' => $dataProvider,
     [
         'attribute' => 'format_date',
          // 'format' => 'raw',
         'value' => function ($model) {
              // Here use \Yii::$app->formatter->asDate();
              // Ex: return \Yii::$app->formatter->asDate($model->format_date);
              return \Yii::$app->formatter->asDate($model->format_date);
         },
     ],
]) ?>