Yii中CGridView使用心得

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


發佈了21 篇原創文章 · 獲贊 6 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章