如何获取当前用户发表评论的所有帖子。我有表格之间的关系,但情况对我来说很难。它应该是这样的:如何获取作者发表评论的所有帖子?
$posts = Yii::app()->user->comments->posts->findAll(); // don't think that is my code, it just for explanation of query chain
所以我需要得到所有帖子,用户留下评论。
在SQL我查询工作正常:
SELECT tc.title, tc.content, t.post_id
FROM tbl_comment t
JOIN tbl_post tc
ON t.post_id =tc.id
WHERE author_id =43
GROUP BY t.post_id
$CD = new CDbCriteria;
$CD->condition = 'tc.author_id='.Yii::app()->user->id;
$CD->join = 'JOIN tbl_comment tc ON t.id=tc.post_id';
$posts = Post::model()->findAll($CD);
这是它。
您意识到您发布的示例SQL非常不同,因为它使用WHERE子句筛选而不是IN子句。 。 。你想为那个SQL使用PHP,或者你的第一个例子显示了什么? – ernie
我知道,因为我试图找到最佳的解决方案,没有'IN'。 – Smash
如果是这样的话,这听起来像你应该确保你的模型包含author_id,并且如果你知道author_id,那么使用'addColumnCondition(array('author_id'=> $ value))'或类似的东西来编写critiera。 。 。 – ernie