2012-07-16 8 views
5

Ich bin in einem Problem in CGridView yii stecken, meine Rückerstattung Feld zeigen 0/1, aber ich möchte "Ja" wenn 0 und "Nein" wenn 1, ohne eine zweite Tabelle zu verwenden.Wie zeige ich "Yes/No" CGridView yii abhängig vom Merkerfeld 0/1?

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'transaction-grid', 
'dataProvider'=>$model->search(), 
'filter'=>$model, 
'columns'=>array(
    'id', 
    'member_id', 
    array(
     'header' => 'MemberName', 
     'name' => 'member_id', 
     'value' => '$data->member->f_name' 
    ), 

    'refund', 
    'band_id', 

    array(
     'class'=>'CButtonColumn', 
     'template'=>'{view}', 
    ), 
), 

));

Antwort

3
array(
        'name' => 'refund', 
        'header' => "Refund", 
        'value' => '$data->refund?Yii::t(\'app\',\'Yes\'):Yii::t(\'app\', \'No\')', 
        'filter' => array('0' => Yii::t('app', 'No'), '1' => Yii::t('app', 'Yes')), 
        'htmlOptions' => array('style' => "text-align:center;"), 
      ), 
+0

ich die folgende Fehlermeldung erhalten: 'include ($ Daten-> genehmigt Yii :: t ('App', 'Ja'): Yü. php): Öffnen des Streams fehlgeschlagen: Keine solche Datei oder kein solches Verzeichnis. – SPRBRN

+0

sollten Sie überprüfen, warum Ihre Skripte diesen hässlichen Dateinamen zusammenstellen, der eine Art PHP-Code ist. – Pentium10

+0

besser/vollständige antwort unter – redDevil

4

Ich hoffe, dies wird Ihr Problem lösen.

Ersetzen Sie "Rückerstattung" mit diesem Code.

array(
      'header' => 'Refund', 
      'name' => 'refund', 
      'value' => '($data->refund == 0) ? "Yes" : "No"' 
     ), 
+0

das funktioniert auch nicht – user1045373

+0

das ist wrking ... – user1045373

+0

Für mich zeigt dies '($ data-> refund == 0)? "Ja": "Nein", also nicht der tatsächliche Wert Ja oder Nein. – SPRBRN

19

wird beiden anderen Antworten arbeiten, aber die sauberste Weg, es zu tun ist:

'columns'=>array(
    'id', 
    'member_id', 

    ... 

    'refund:boolean', 
), 

Es gibt, die ein Bündel von CGridView Spaltendatentypen automatisch verwendet, wenn Sie Doppelpunkte verwenden wie über. Mehr Infos hier: https://github.com/samdark/a-guide-to-yii-grids-lists-and-data-providers/blob/master/grid-columns.md

+0

Danke! Diese Verbindung ist sehr nützlich. Optionen sind: Datum, Uhrzeit, Datum, Uhrzeit, Nummer, E-Mail, URL, Bild, Raw, Text, Ntext und HTML. – SPRBRN

+0

Wie wird dies nicht als akzeptiert markiert? – DaSourcerer

+0

Pentium hat seine Antwort bekommen (und akzeptiert), bevor ich am nächsten Tag meine schrieb ;-) – acorncom

1

Wenn in einem CGridView ein boolean Feld Anzeige verwenden, um das name:type:header Format, wenn die Spalten der Erstellung den Typen als boolean angeben. Z.B.

$this->widget('zii.widgets.grid.CGridView', array(
    ... 
    'columns'=>array(
     'id', 
     'refund:boolean', 
), 

Wenn Sie die Art und Weise das Feld in einer CActiveForm Änderung angezeigt wird ändern mögen die Methode macht entweder eine Checkbox oder eine Dropdown-Liste zu verwenden. Meine Präferenz ist eine Dropdown-Liste, weil es Ihnen die Möglichkeit gibt, den Wert auf null zurückzusetzen.

$form->dropDownList($model,'refund', array(null=>"Not checked", 0=>"No", 1=>"Yes")); 
-1

IN ANSICHTEN NAMES admin.php

array( 'name'=>'status', 'header'=>'status', 'filter'=>array('1'=>'Inacive','2'=>'Active'), 'value'=>'($data->status=="1")?("Inacive"):("Active")' ),

Verwandte Themen