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です。
・
・
・
となる為、ビューでの表示のさせ方にも困っております。
お礼
大変失礼を致しました!! <HEAD>内のスタイルシート部分をコメントアウトしている部分の終わりが --!>となっていました。 こちらを修正しましたら、きちんと表記されるようになりました。 こんな質問に貴重なお時間を割いて頂き申し訳ございませんでした。 ありがとうございました。