更新
好的,我在您的帖子中错过了“如果”一词,并认为只有当用户投票支持时您才需要条目。阅读下面的更新以获取正确的代码。我把第一部分留给你,以防你将来需要它。仅当条目至少有 1 票时,INNER JOIN 才会接受条目。
------------------ 第一部分(错误)------------------
在模型中声明一个关系Entries
:
public function relations() {
return array(
'votes' => array(self::HAS_MANY, 'Votings', 'entry_id'),
);
}
当你创建你的数据提供者时,这样做:
$dataProvider = new CActiveDataProvider('Entries',
array(
'criteria' => array(
'with' => array(
'votes'=>array(
'joinType' => 'INNER JOIN'
)
)
)
)
);
这不会为您创建上面编写的 SQL,但这会以正确的方式进行。SQL 将类似于以下内容:
select * from tbl_entries t INNER JOIN tbl_votings v ON t.id = v.entry_id
----------------- 第二部分(右) ------------------
更新
好的,所以如果您只需要为他们获取条目和投票,您可以从第一部分执行相同的关系声明:
public function relations() {
return array(
'votes' => array(self::HAS_MANY, 'Votings', 'entry_id'),
);
}
然后你像这样创建你的数据提供者:
$dataProvider = new CActiveDataProvider('Entries',
array(
'criteria' => array(
'with' => array('votes')
)
)
);