2016-12-28 8 views
0

私はいくつかの列を持つgridviewを持っています。すべての列フィールドに同じ値があります。yii2

'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 
     ['header' => 'Manager', 
     //'value' => 'first'], 

列名はマネージャで、すべてのフィールドは「first」と同じですか?どうすればこのことができますか?

答えて

1

提供情報に基づくと、これはカスタムのグリッド列を達成するのは簡単です:

<?php 

namespace app\components;  

class CommonValueColumn extends Column 
{ 
    public $commonValue = 'Default value for common value';  

    protected function renderDataCellContent($model, $key, $index) 
    { 
     return $commonValue; 
    } 
} 

次に、このようGridViewウィジェットでそれを使用する:managerがモデルであればということ

'columns' => [ 
    // ... 
    [ 
     'class' => 'app\components\CommonValueColumn', 
     'header' => 'Manager', 
     'commonValue' => 'First', 
    ], 
    // ... 
], 

注意データベースから取得する必要がありますが、これを行うには間違った方法です。

GridViewウィジェットに関する情報は、official docsにあります。

+0

高度なテンプレートでクラスクラスCommonValueColumnを見つけることができませんでした。 – cruim

+0

@cruimこのクラスはYii2コアにも高度なテンプレートにもありません。自分で作成する必要があります。実装例を提供しました。 – arogachev

+0

私はこれを加えます。 ' ' header '=>'マネージャ '、 ' value '=> function($ data){ return $ data-> name; //配列データの$ data ['name']。 SqlDataProviderを使用します。 }、 ]、 'モデルに' name'を作成します。 – cruim

関連する問題