2016-12-28 6 views
0

Ich habe Gridview mit einigen Spalten. Ich möchte eine Spalte wieGleicher Wert für alle Spalten Felder yii2

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

Spalte Name ist Manager und alle Felder gleich "erste"? Wie könnte ich das tun?

Antwort

1

Basierend auf Informationen zur Verfügung gestellt, ist dies einfach mit benutzerdefinierten Rasterspalten zu erreichen:

<?php 

namespace app\components;  

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

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

es dann so in GridView Widget verwenden:

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

Beachten Sie, dass, wenn die manager ein Modell Attribut und der Wert muss aus der Datenbank genommen werden, dies ist ein falscher Weg, dies zu tun.

Informationen zum GridView-Widget finden Sie in der official docs.

+0

Ich konnte die Klasse CommonValueColumn in der erweiterten Vorlage – cruim

+0

@cruim nicht finden Es gibt keine solche Klasse weder in Yii2 Core noch in Advanced Template. Sie sollten es selbst erstellen. Ich habe ein Implementierungsbeispiel bereitgestellt. – arogachev

+0

Ich füge diese '[ 'Kopfzeile' => 'Manager', 'Wert' => Funktion ($ Daten) { zurück $ Daten-> Name; // $ data ['name'] für Array-Daten, z.B. mit SqlDataProvider. }, ], 'Und erstellen Sie' name' im Modell. – cruim

Verwandte Themen