YII中自带的CGridView

我有2个数据 一个是url_info 一个是category

url_info 中cid 是category的外键

我想用 YII中自带的CGridView 显示出 url_info.id category,name 这个2个字段在同一个表中

/**


 * Manages all models.


 */


public function actionAdmin()


{


	$dataProvider=new CActiveDataProvider('url_info,category', array(//这边写的有问题,不知道该如何写


		'criteria'=>array(


		 'condition'=>'url_info.cid=category.id',//这变也是


	         'order'=>'id desc',


        ),


		'pagination'=>array(


			'pageSize'=>self::PAGE_SIZE,


		),


	));





	$this->render('admin',array(


		'dataProvider'=>$dataProvider,


	));


}

显示层:

<?php $this->widget(‘zii.widgets.grid.CGridView’, array(

'dataProvider'=&gt;&#036;dataProvider,


'columns'=&gt;array(


	'id',


	'cid',


             'category.name'


	array(


		'class'=&gt;'CButtonColumn',


	),


),

好像我吧CActiveDataProvider 理解错了 。。。

呵呵 搞出来了 还是多看手册好!

我写了一个例子:

我有2个表 :url_info ; category

url_info 字段: id,cid ,title

category字段:id ,name

其中url_info.cid=category.id

目的:就是关联2个表查询出 这样的结构 url_info.id category.name title

其中url_info model中的关系如下写:

/**

  • @return array relational rules.

*/

public function relations()

{

// NOTE: you may need to adjust the relation name and the related

// class name for the relations automatically generated below.

return array(

‘category’=>array(self::BELONGS_TO, ‘category’, ‘cid’),

);

}

控制层:

/**

  • Manages all models.

*/

public function actionAdmin()

{

$dataProvider=new CActiveDataProvider(‘url_info’, array(

‘criteria’=>array(

‘condition’=>‘cid=category.id’,

‘with’=>array(‘category’),

‘order’=>‘cid desc’,

),

‘pagination’=>array(

‘pageSize’=>self::PAGE_SIZE,

),

));

$this->render(‘admin’,array(

‘dataProvider’=>$dataProvider,

));

}

显示层:

$this->widget(‘zii.widgets.grid.CGridView’, array(

‘dataProvider’=>$dataProvider,

‘columns’=>array(

‘id’,

‘category.name’,

‘title’,

array(

‘class’=>‘CButtonColumn’,

),

),