CakePHPでのコメント数表示について
CakePHPを使って簡単な掲示板を開発しているのですが、トップページに
各トピックについたコメント数を表示させる方法で壁にぶち当たってしまっております。
データの取り出し方及び表示方法について教えて頂ければと思います。
DB構造(モデル)としては、
====================================
■掲示板(post.php)
テーブル:posts
id
title
contents
■コメント(comment.php)
テーブル:comments
id
post_id
comment
====================================
となっており、postsにhasMany、commentsにbelongsToで
アソシエーションを貼ってあります。
コントローラー(posts_controller.php)では、
====================================
$data = $this->Post->find('all',array('order' => array('Post.id' => 'desc')));
$this->set('data',$data);
====================================
という処理を行い、
ビュー(/posts/index.ctp)では、
====================================
foreach($data as $val){
echo "<tr>";
echo "<td><a href='{$val['Post']['id']}'>$val['Post']['title']</a></td>";
echo "</tr>";
}
====================================
としています。
これで、トップページに行くと掲示板トピックスのタイトルの
一覧は表示できるのですが、その横についたコメント数を表示
させたいのです。
例)掲示板のタイトルです(13)
上記のように(○)とさせたいのです。
コントローラーの所でallではなくcountにすることで件数を取りだす
ことができる所まではできるのですが、
$cnt = $this->Post->find('count',array('order' => array('Post.id' => 'desc')));
などとやっても本来取り出したいcommentsではなくpostsの件数を取りだす
ことになってしまっています。
また、hasManyを利用すると、
Array(
[0] => Array(
[post] => Array(
[id] => 1
[title] => 掲示板のタイトルです
[contents] => 掲示板の内容です
[comment] => Array(
[0] => Array(
[id] => 1
[post_id] => 1
[comment] => コメント1です。
[1] => Array(
[id] => 2
[post_id] => 1
[comment] => コメント2です。
・
・
・
となる為、ビューでの表示のさせ方にも困っております。
お礼
lonewolfさん、回答して頂きまして有難うございます。お礼が遅くなりまして、申し訳ありません。 あー、せっかくの毒舌回答が、随分シンプルになってしまって・・・。でも、しっかり編集されてしまう前の回答、読ませていただきましたから。 忙しくて覗けないうちに削除が3件、編集が1件。lonewolfさんの2回目の回答は、読めなかったです。残念。 lonewolfさんほどの方(^^)が >腰が抜けるかと思うほど< な内容が、深夜にコメント欄へ書き込まれているなんて・・・絶句です。 《深夜の誹謗中傷コメント欄通信》そんな事がまかり通るサイトでしたか?このサイト。 「ここは良質な回答が得られる、素晴らしいサイトですね」と喜んでおられる、新しいユーザーさんの書き込みを、何度見かけたことか。でもその実体たるや・・・ そんなことが堂々と行われている遠因に、仲良しさん同士のやり取りにコメント欄を使用するようになったことにあるのです。あろうことか、その上 《敵対する一人のユーザーさん》 に誹謗中傷まで。 仲良しさん同士でグループが出来ると、強気になりがちです。歯向かうと個人攻撃される危険性があり、個人で参加している会員にとって、怖い存在です。 現に、このような質問を立ち上げた私も、どう思われているか・・・。私はこのサイトが、大大大好きだから、長くお世話になりたいのです。でも、該当する常連さんのグループに反抗して居辛くなるとしたら、悲しいです。 lonewolfさん、たくさんの貴重な情報を書き込んで頂いて感謝いたします。いつも個性的な回答、楽しみに読ませて頂いてました。これからも、どうぞ宜しくお願い致します。 ********************** chihopopoさん、ご回答のお礼を直ぐ書けば良かったのに、申し訳ありませんでした。でも、しっかり読ませて頂きましたから。本当に有難うございました。 2/27 16:18