2012-07-16 13 views
5

Estoy atrapado en un problema en CGridView yii, mi campo de reembolso muestra 0/1 pero quiero mostrar "Sí" si es 0 y "No" si es 1, sin usar ninguna segunda tabla.cómo mostrar "Sí/No" CGridView yii dependiendo del campo de indicador 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}', 
    ), 
), 

));

Respuesta

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

me sale el siguiente error: 'include ($ data-> aprobaron Yii :: t ('app', 'Sí'):? Yii. php): no se pudo abrir la secuencia: no existe tal archivo o directorio'. – SPRBRN

+0

debe comprobar por qué sus scripts componen ese nombre de archivo feo que es algún tipo de código php. – Pentium10

+0

respuesta mejor/completa debajo de – redDevil

4

Espero que esto resuelva su problema.

Reemplace "reembolso" con este código.

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

esto tampoco está funcionando – user1045373

+0

esto es wrking ... – user1045373

+0

Para mí, esto muestra '($ data-> refund == 0)? "Sí": "No" ', entonces no el valor real Sí o No. – SPRBRN

19

Tanto de las otras respuestas funcionará, pero la manera más limpia de hacerlo es:

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

    ... 

    'refund:boolean', 
), 

Hay un montón de tipos de datos de columna CGridView que son auto-usado si utiliza dos puntos como encima. Más información aquí: https://github.com/samdark/a-guide-to-yii-grids-lists-and-data-providers/blob/master/grid-columns.md

+0

¡Gracias! Ese enlace es muy útil. Las opciones son: fecha, hora, fecha y hora, número, correo electrónico, url, imagen, sin procesar, texto, ntext y html. – SPRBRN

+0

¿Cómo no se marca esto como aceptado? – DaSourcerer

+0

Pentium obtuvo su respuesta (y aceptó) antes de escribir la mía al día siguiente ;-) – acorncom

1

Cuando se muestra un campo booleano en un CGridView utilizar el formato name:type:header al crear las columnas para especificar el tipo booleano. P.ej.

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

Si desea cambiar la forma en que el campo se muestra en un cambio CActiveForm el método render a utilizar una casilla de verificación o una lista desplegable. Mi preferencia es la lista desplegable porque le da la opción de volver a establecer el valor como nulo.

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

en las vistas NOMBRES admin.php

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

Cuestiones relacionadas