我有以下示例代码:
$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)则不可用.
任何人都可以提供有关代码错误或"选择"选项没有获取第二个字段的帮助吗?
如果你使用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的关系名称.