特定のユーザーの投票の合計を取得しようとしています。
これが投稿テーブルだとします
id | body | user_id | vote_total | type
1 test 1 4 new
2 test2 1 3 new
3 test3 2 2 new
次の出力を取得しようとしています
user_id | vote_total
1 7
2 2
これが PostsController の私の関数です
public function topvotes(){
$virtualFields = array('total' => 'SUM(Post.vote_total)');
$total = $this->Post->find('all', array(
array('fields' => array('total'),
'recursive' => 1,
'group' => array('Post.user_id'),
'conditions'=>array('Post.type' => 'new' ))));
$post = $this->Post->find('all', $total);
$this->set('posts', $post);
}
このクエリは機能します (phpmyadmin で試しました) が、結果の配列にアクセスする方法がわかりません
編集次のクエリを使用して動作するようにしました
$query = $this->Post->query("select posts.user_id, SUM(Posts.vote_total) from posts where posts.type = 'new' group by posts.user_id");
$this->set('posts', $query);
print_r と入力すると、これは配列です
Array ( [posts] => Array ( [user_id] => 7 ) [0] => Array ( [total] => 6 ) ) 1