Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2由不同属性值定义的GridView属性格式_Php_Gridview_Yii2_Format - Fatal编程技术网

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

Php Yii2由不同属性值定义的GridView属性格式,php,gridview,yii2,format,Php,Gridview,Yii2,Format,我想根据db字段值定义GridView中属性的格式。例如,我试着这样做: 'format' => function ($model) {return $model->format;}, // it should return 'boolean' 但我也尝试过很多其他的方法,但都不起作用。我得到: PHP通知–yii\base\ErrorException 正在尝试获取非对象的属性 如果我只是将format作为一个属性返回,那么它的工作没有任何问题。似乎它在格式部分不接受它。 我到底

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

'format' => function ($model) {return $model->format;}, // it should return 'boolean'
但我也尝试过很多其他的方法,但都不起作用。我得到:

PHP通知–yii\base\ErrorException

正在尝试获取非对象的属性

如果我只是将
format
作为一个属性返回,那么它的工作没有任何问题。似乎它在
格式
部分不接受它。
我到底有没有可能实现我的目标?您能给我指一下正确的方向吗?

Closure
s不支持
格式
。您可以使用
raw
格式并在
Closure
中对
值进行格式化:

[
    'attribute' => 'name',
    'type' => 'raw',
    'value' => function ($model) {
        $format = 'as' . ucfirst($model->format);
        return Yii::$app->formatter->$format($model->name);
    },
],
提及

例如:

<?= 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);
         },
     ],
]) ?>

看起来不错:
'value'=>函数($model){return\Yii::$app->formatter->{$model->format}($model->value);},
非常感谢你们两位!很难决定你们中的哪一位获得了分数,因为rob006花了时间来解决我的问题,他解释得更好,但是,从技术上来说,你的答案也是正确的。