多表关联显示在CGridView中 [ 技术分享 ]
我有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',
),
),
sql 语句:
mysql> select url_info.id,cid,category_name from url_info,category where url_inf
o.cid=category.id;
别处看到的,分享给像我一样的菜鸟
共 3 条回复
-
你帮我看一下这个
http://www.yiichina.com/topic/4478
dapeng
注册时间:2012-08-12
最后登录:2014-07-26
在线时长:0小时20分
最后登录:2014-07-26
在线时长:0小时20分
- 粉丝2
- 金钱1160
- 威望0
- 积分1160