Yii框架中CGridView使用教程

jerry Yii 2015年08月12日 收藏

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

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

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

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

  1. <span style="font-size:18px;">'columns' => array(  
  2.            ....  
  3.           'create_time',  
  4.            ....  
  5. ),</span>

如果要以date格式显示,则:

  1. <span style="font-size:18px;">'columns'=>array(  
  2.         'title',  
  3.         'content',  
  4.         array(  
  5.             'name' => 'is_blank',  
  6.             'value' => '$data->is_blank',  
  7.             'filter' => array(0=>"否",1=>"是"),  
  8.         ),  
  9.         array('name' => 'father',  
  10.             'value' => '$data->navigation->name',  
  11.             'filter' => Navigation::navigations(Navigation::FriendLinkType),  
  12.         ),  
  13. <span style="color:#000099;">       array('name'=>'create_time',  
  14.             'type'=>'date',  
  15.             'filter' => false,  
  16.         ),</span>  
  17.         array(  
  18.             'class'=>'CButtonColumn',  
  19.         ),  
  20.     ),</span>

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

  1. <span style="font-size:18px;"><?php $this->widget('zii.widgets.grid.CGridView', array(  
  2.     'id'=>'friendlink-grid',  
  3.     'dataProvider'=>$model->search(),  
  4.     'filter'=>$model,  
  5.     'columns'=>array(  
  6.         'title',  
  7.         'content',  
  8.         array(  
  9.             'name' => 'is_blank',  
  10.             'value' => '$data->is_blank',  
  11.             'filter' => array(0=>"否",1=>"是"),  
  12.         ),  
  13.         array('name' => 'father',  
  14.             'value' => '$data->navigation->name',  
  15.             'filter' => Navigation::navigations(Navigation::FriendLinkType),  
  16.         ),  
  17.         array('name'=>'create_time',  
  18.             'type'=>'date',  
  19.             'filter' => false,  
  20.         ),  
  21.         array(  
  22.             'class'=>'CButtonColumn',  
  23.         ),  
  24.     ),  
  25. )); ?></span>