如何獲取當前用戶發表評論的所有帖子。我有表格之間的關係,但情況對我來說很難。它應該是這樣的:如何獲取作者發表評論的所有帖子?
$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