CGridView有对各种字段值进行变换的功能。
如果不经修改,那么CGridView显示的值就是数据库中原封不动的值。 此时columns数组的每个值是数据库中对应表的一个字段。
如果要进行变换显示,则columns变为二维数组。
以时间为例,我这里是 create_time。 原生的是:
- <span style="font-size:18px;">'columns' => array(
- ....
- 'create_time',
- ....
- ),</span>
如果要以date格式显示,则:
- <span style="font-size:18px;">'columns'=>array(
- 'title',
- 'content',
- array(
- 'name' => 'is_blank',
- 'value' => '$data->is_blank',
- 'filter' => array(0=>"否",1=>"是"),
- ),
- array('name' => 'father',
- 'value' => '$data->navigation->name',
- 'filter' => Navigation::navigations(Navigation::FriendLinkType),
- ),
- <span style="color:#000099;"> array('name'=>'create_time',
- 'type'=>'date',
- 'filter' => false,
- ),</span>
- array(
- 'class'=>'CButtonColumn',
- ),
- ),</span>
其他字段的可以参照一下,filter属性是用在搜索的时候进行筛选的。 因为CGridView要显示很多行,每一行可以看做一个记录,所以在显示每一行是,默认用变量 $data 来代表改行记录。因此在进行变换写 value 的时候,可以用 $data 来显示改行的某一字段值。
- <span style="font-size:18px;"><?php $this->widget('zii.widgets.grid.CGridView', array(
- 'id'=>'friendlink-grid',
- 'dataProvider'=>$model->search(),
- 'filter'=>$model,
- 'columns'=>array(
- 'title',
- 'content',
- array(
- 'name' => 'is_blank',
- 'value' => '$data->is_blank',
- 'filter' => array(0=>"否",1=>"是"),
- ),
- array('name' => 'father',
- 'value' => '$data->navigation->name',
- 'filter' => Navigation::navigations(Navigation::FriendLinkType),
- ),
- array('name'=>'create_time',
- 'type'=>'date',
- 'filter' => false,
- ),
- array(
- 'class'=>'CButtonColumn',
- ),
- ),
- )); ?></span>