如何显示在显示gridview的YII两个表的结果
问题描述:
我有两个表表A和表B中如何显示在显示gridview的YII两个表的结果
我有表A的PK,为Fk在表B.称为member_id
而表B的girdview显示,我想表明在表A中的“会员名”,表B中使用“member_id”
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'transaction-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'member_id',
'Location',
...
array(
'class'=>'CButtonColumn',
'template'=>'{view}',
),
),
));
答
你需要安装一个关系到该表,你可以使用参考该字段的关系如下:
$data->member->name;
在您的交易模型,你将使类似:
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(
'member' => array(self::BELONGS_TO, 'Member', 'member_id'),// foreign key
);
}
和网格你会做这样的:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'transaction-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
array(
'header' => 'Member',
'name' => 'member_id',
'value' => '$data->member->name'
),
'Location',
...
array(
'class'=>'CButtonColumn',
'template'=>'{view}',
),
),
));
嗨,我已经完成以上步骤,但是,我得到错误作为'为foreach()'提供的无效参数。文件和行号是'/var/www/Yii/yii-1.1.13.e9e4a0/framework/db/ar/CActiveFinder.php(784)' – ungalnanban 2013-10-08 09:54:42