Yii CActiveDataProvider从连接表中加入并选择

Ava*_*che 0 yii

我有以下示例代码:

                $dataProvider = new CActiveDataProvider('firstTable', 
                    array('criteria' => array(
                        'select' => 't.firstfield,secondTable.secondfield',
                        'join' => 'join secondTable on secondTable.id=t.secondTable_id',
                    ),
                    'pagination' => array(
                        'pageSize' => 10,
                    ),
                ));
                $results=$dataProvider->getData();
Run Code Online (Sandbox Code Playgroud)

运行上面的代码后,firstField(来自model表 - firstTable)在对象中可用,但secondField(来自连接表 - secondTable)则不可用.

任何人都可以提供有关代码错误或"选择"选项没有获取第二个字段的帮助吗?

Onk*_*nwa 6

如果你使用CDbCriteria会更好,它有一个更好的解决方案,可以在关系的帮助下连接表.我可以用CDbCriteria显示示例.

$criteria = new CDbCriteria;
$criteria->select = 'firstfield';
$criteria->with = array('secondTable_relation'=>array('select'=>'secondfield'));
$dataProvider = new CActiveDataProvider('firstTable', 
                    array('criteria' => $criteria,
                    'pagination' => array(
                        'pageSize' => 10,
                    ),
                ));
                $results=$dataProvider->getData();
Run Code Online (Sandbox Code Playgroud)

secondTable_relation是具有secondTable的关系名称.