Yii2 gridview格式属性是否基于输出?

Yii2 gridview格式属性是否基于输出?,yii2,Yii2,我是yii2的新手,默认情况下,gridview中的字段是decimal,但我在value属性中有一些条件 我的代码视图如下所示 [ 'attribute' => 'harga_diskon_periode', 'format' => function($model){ if($model->diskon_now == ""){ return "text";

我是yii2的新手,默认情况下,gridview中的字段是decimal,但我在value属性中有一些条件

我的代码视图如下所示

[
            'attribute' => 'harga_diskon_periode',
            'format' => function($model){
                if($model->diskon_now == ""){
                    return "text";
                }else{
                    return "decimal";
                }               
            },
            'value' => function($model){
                if($model->diskon_now == ""){
                    return "Tidak ada diskon";                      
                }
            },
         ],
所以我需要的是,如果输出数字,格式将是十进制的,如果输出字符串,格式将是文本

使用上面的代码,我得到了这个错误

类闭包的对象无法转换为字符串

我读了这个it'show
string | array
,所以我在format属性中使用了匿名函数

我错了吗?我的代码怎么了?我的代码应该是什么样子?我是yii2的新手,如有任何推荐,将不胜感激


提前感谢。

GridView不允许在那里关闭,请这样做:

'attribute' => 'harga_diskon_periode',
'value' => function ($model) {
    return $model->diskon_now == ''
        ? 'Tidak ada diskon'
        : \Yii::$app->formatter->asDecimal($model->harga_diskon_periode);
},