牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii中CGridView使用心得

创建时间:2013-01-27 投稿人: 浏览次数:5418

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


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。