我遇到了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}',
),
),
));
答案 0 :(得分:19)
其他两个答案都有效,但最简洁的方法是:
'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
答案 1 :(得分:4)
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;"),
),
答案 2 :(得分:4)
希望这能解决您的问题。
使用此代码替换“退款”。
array(
'header' => 'Refund',
'name' => 'refund',
'value' => '($data->refund == 0) ? "Yes" : "No"'
),
答案 3 :(得分:1)
在CGridView
中显示布尔字段时,在创建列时使用name:type:header
格式将类型指定为布尔值。 E.g。
$this->widget('zii.widgets.grid.CGridView', array(
...
'columns'=>array(
'id',
'refund:boolean',
),
如果要更改CActiveForm
中字段的显示方式,请将渲染方法更改为使用复选框或下拉列表。我的首选项是下拉列表,因为它为您提供了将值设置回null的选项。
$form->dropDownList($model,'refund', array(null=>"Not checked", 0=>"No", 1=>"Yes"));
答案 4 :(得分:0)
快速修复:
将'refund',
替换为:
array(
'name' => 'refund',
'type' => 'raw',
'value' => function($model){
return $model->refund == 1 ? 'No' : 'Yes';
}
),
答案 5 :(得分:-1)
在视图中命名ADMIN.PHP
阵列( '名称'=> '状态', '标题'=> '状态', '过滤器'=>阵列( '1'=> 'Inacive', '2'=> '有效'), '值'=> '?($ DATA->状态== “1”)( “Inacive”):( “活性”)' ),