2016-12-02 15 views
1

私はyii2で新しくなっています。デフォルトでは、gridviewの私のフィールドは小数ですが、私は値のプロパティでいくつかの条件を持っています。Yii2 gridview形式のプロパティベースの出力?

私のコードビューは、フォーマットは、小数点とIF出力文字列になります出力番号のであれば、私は必要なもので、フォーマットはテキストになります。この

[ 
      '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";      
       } 
      }, 
     ], 

のように見えます。上記のコードでは

私はこのエラーに

Object of class Closure could not be converted to string

を得る私はそう、私はフォーマットプロパティに匿名関数を使用しstring|array it'showこのhttp://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html#$format-detailをお読みください。

私は間違っていますか?私のコードに何が問題なのですか?私のコードはどのように見えますか?私はyii2の初心者なので、どんな参考文献も感謝します。

ありがとうございます。

答えて

1

GridViewのは、そこに閉鎖することはできません。そのようにそれを行う:

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