我的控制器
$criteria = new CDbCriteria();
$criteria -> select = 't.*,b.*';
$criteria -> join = 'INNER JOIN tbl_b b on b.b_id = t.id ';
$criteria -> join .= 'INNER JOIN tbl_c c on c.id = b.c_id';
$criteria -> condition = 'c.id = :cid';
$criteria -> params = array(':cid' => 1);
$dataProvider = new CActiveDataProvider('tbl_a',array(
'criteria' => $criteria
));
$this->render('view',array('dataProvider' => $dataProvider));
我的观点
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'my-grid',
'dataProvider' => $dataProvider,
'columns' => array(
'name',
'description',
array(
'header' => 'Column from tbl_b',
'value' => ''
),
array(
'class'=>'CButtonColumn',
'template' => '{view}'
), ),));
我的问题是:如何显示来自tbl_b
. 由于在 中dataprovider
,我已经指定tbl_a
,它只是从中提取数据,tbl_a
而不是从tbl_b
其中选择所有记录tbl_b
。
据我所知,它应该显示为$data -> tbl_b -> col_b
. 但这给出了tbl_a.tbl_b
未定义的错误。我想知道是什么问题?
Is it something regarding the relation?
tbl_a
并且通过tbl_c
相关。ie有两列链接 和 的主要id 。MANY_MANY
tbl_b
tbl_b
tbl_a
tbl_c
注意:名称和描述来自 tbl_a 并显示出来。
请建议!