0
내 문제는 기사의 의견에 대한 투표 수를 계산하는 것입니다. 그래서 사용자는 기사의 좋은 의견을 upvote 할 수 있으며, 가장 많은 의견이있는 댓글을 먼저 나열하고 싶습니다. 제가 지금 따르고있는 접근 방식은 한계점과 함께 이미 투표 된 유일한 표를 나열하는 것입니다. 조인 테이블 (comments_users)에 나열되지 않은 항목은 무시됩니다.Cakephp는 기존 항목이 아닌 join 결과의 수를 계산합니다.
이public function commentsOfArticle($articleId){
$options['group'] = array('Comment.articleId');
$options['conditions'][] = array('Comment.article_id' => $articleId);
$options['joins'][] = array('table' => 'comments_users',
'alias' => 'Votes',
'type' => 'inner',
'conditions' => array(
'Votes.comment_id = Comment.id'
));
$options['fields'] = array('Comment.*','COUNT(Votes.user_id) AS votes');
$options['contain'] = array(.......);
$options[ 'order'] = array('votes DESC');
return $this->find('all',$options);
}
내가 키 생각 : 내 테이블 사용자, 의견과 HABTM 조인 테이블 comments_users (별명 투표)
내 현재의 접근 방식은이가 좀 더 명확하게하기 라인은
$options['fields'] = array('Comment.*','COUNT(Votes.user_id) AS votes');
입니다.이 의견을 수락 할 수 있습니다. 투표에 항목이 없습니다. 내 결과의 끝에, 투표 = 0으로 할 수 있습니까?