【发布时间】:2012-06-21 17:55:58
【问题描述】:
我的控制器
$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 与 MANY_MANY 到 tbl_b 相关。即tbl_b 有两列链接tbl_a 和tbl_c 的主ID。
注意:名称和描述来自tbl_a并显示出来。
请推荐!
【问题讨论】:
标签: activerecord orm yii