Yii中CGridView使用心得

来源:互联网 发布:混凝土软件 编辑:程序博客网 时间:2024/04/30 18:41

Yii中CGridView常用在 admin 视图中。 

很多我们数据库中保存的字段,在显示的时候并非是真正的显示数据库中的值,例如:时间。在数据库中时间以10位整数保存,但是在显示的时候我们会用date函数将整数值转换成时间格式再显示。 

CGridView有对各种字段值进行变换的功能。 

如果不经修改,那么CGridView显示的值就是数据库中原封不动的值。 此时columns数组的每个值是数据库中对应表的一个字段。 

如果要进行变换显示,则columns变为二维数组。

以时间为例,我这里是 create_time。 原生的是: 

'columns' => array(           ....          'create_time',           ....),
如果要以date格式显示,则: 

'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',),),


其他字段的可以参照一下,filter属性是用在搜索的时候进行筛选的。 因为CGridView要显示很多行,每一行可以看做一个记录,所以在显示每一行是,默认用变量 $data 来代表改行记录。因此在进行变换写 value 的时候,可以用 $data 来显示改行的某一字段值。 


<?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',),),)); ?>