我使用此网格查看包含数据的表:
查看部分:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'news-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'name'=>'enable',
'type'=>'html',
'value'=>'$data->stateHtmlIcon',
),
),
)); ?>
在我的模特中:
public function getStateHtmlIcon() {
if ($this->enable == AbstractModel::ENABLE) {
return '<font class="icon-enable"></font>';
} else {
return '<font class="icon-disable"></font>';
}
}
它不起作用,当显示具有stateHtmlIcon的列时,渲染停止。
当我在网格(视图部分)中评论'type'=&gt;'html'时,它可以正常工作但是在列中html没有正确呈现
<font class="icon-enable"></font>
而不是用css样式显示的图标。
所以我认为我没有正确使用'type'=&gt;'html?
答案 0 :(得分:3)
我最近用过
array(
'type' => 'raw',
'value' => 'CHtml::link([...])',
),
完成这项工作。
另见
http://www.yiiframework.com/doc/api/1.1/CDataColumn#type-detail
答案 1 :(得分:2)
你应该使用'raw'作为类型。见CFormatter
raw:属性值根本不会改变。