CakePHP 2.6
php 5.6
投稿した個別の記事ないには、コメント件数を表示できましたが、
一覧ページにも表示したいのですが、できません。
find('count')で表示させようとしております。
実装したい内容としては、
・投稿した一覧画面に投稿に対してのコメント数を表示
※投稿した個別のページでは実装できました。
現在イメージしている処理の内容ですが、下記になるかと思っています。
1、controller : commentのpost_id=postsのidの値を取得
2、view : ループを回して表示する。
というイメージなのですが、このイメージで正しいのでしょうか?
この上記のイメージが間違っていました。
自分なりに考え直した結果。これが正しい処理の方法かと思っています。
1、controller
・virtualFieldsを追加。
・find('all')で指定のfieldsの取得して、countで合計を出す。
・それをpostのidでグループ化
・combineで配列を組み直す
・最後にviewに渡す。
しかし、viewに渡してからの表示方法がわかりません。。。
コントローラーからのviewに返ってきた値は、
下記になります。
array(
'' => '0',
(int) 2 => '16',
(int) 4 => '5',
(int) 7 => '15',
(int) 8 => '7',
(int) 9 => '1',
(int) 13 => '3',
(int) 17 => '3',
(int) 18 => '1',
(int) 19 => '1',
(int) 28 => '3',
(int) 33 => '3'
)
コントローラーがこちらです。
php
1//コメント件数表示 2 $this->Post->virtualFields['num'] = 0; 3 $data = $this->Post->Comment->find('all', array( 4 'fields'=> array('Post.id', 'Comment.cosme_id', 'count(Post.id) as Post__num'), 5 'group' => array('Post.id') 6 )); 7 $results_tmp = Hash::combine($data, '{n}.Post.id', '{n}.Post.num'); 8 $this->set(compact('results_tmp'));
最後のviewので表示ができません。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/01 04:56
退会済みユーザー
2016/02/01 05:15 編集
2016/02/01 05:59