如何显示“是/否”CGridView yii取决于标志字段0/1?

mefy6pfw  于 2022-11-09  发布在  其他
关注(0)|答案(6)|浏览(161)

我在CGridView yii中遇到了一个问题,我的退款字段显示0/1,但我想显示“是”如果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}',
    ),
),

));

xxslljrj

xxslljrj1#

快速修复:将'refund',替换为:

array(
        'name' => 'refund',
        'type' => 'raw',
        'value' => function($model){
            return $model->refund == 1 ? 'No' : 'Yes';
        }
    ),
zvokhttg

zvokhttg2#

在视图中名称管理员. PHP
如果您有一个数组,那么您就可以使用这个数组中的所有元素来表示您的状态。

eeq64g8w

eeq64g8w3#

其他两个答案都可以,但最简洁的方法是:

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

    ...

    'refund:boolean',
),

如果你像上面那样使用冒号,有很多CGridView列数据类型是自动使用的。更多信息在这里:https://github.com/samdark/a-guide-to-yii-grids-lists-and-data-providers/blob/master/grid-columns.md

kmbjn2e3

kmbjn2e34#

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;"),
              ),
dffbzjpn

dffbzjpn5#

希望这能解决你的问题。
将“退款”替换为该代码。

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

zu0ti5jz6#

CGridView中显示布尔型字段时,请在创建列时使用name:type:header将类型指定为布尔型。例如:

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

如果你想改变字段在CActiveForm中的显示方式,可以改变render方法,使用复选框或下拉列表。我的首选是下拉列表,因为它提供了将值设置回null的选项。

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

相关问题