-1

Post と呼ばれるモデルと Comment と呼ばれる別のモデルがあり、Comment には post_id と呼ばれるフィールドがあります... Post には多くのコメントがあり、Comment は post に属します。

リストの投稿と以下のコメントが必要です。純粋な php では、次のようになります。

<?php
foreach ($posts as $post){

 echo "<h3>" .$post['title']. "</h3>";

 $sel = mysql_query("SELECT * FROM comments WHERE post_id =". $post['id']);
 $comments = mysql_fetcha_assoc($sel);

 foreach ($comments as $comment){
  echo "<p>" .$comment['comment']. "<p>";
 }
}
?>

私はケーキ2.xを使用しています..ありがとう

4

2 に答える 2

2

申し訳ありませんが、上記のコードは Cakephp でデータベースからデータを取得する方法が間違っています。

モデル間の関係は完璧だと思います

find()次のような単純なクエリから取得できます

$this->set('post', $this->Post->find('first', array(
  'conditions'=>array('Post.id'=>$id),
  'contain'=>array('Comment')
)));

次のようなビューで出力が得られます

Array
(
    [Post] => Array
        (
            [id] => 1
            [title] => The title
            [body] => This is the post body.
            [created] => 2007-12-28 13:54:34
            [modified] => 
        )
    [Comment] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [post_id] => 1
                    [name] => James
                    [email] => info@jamesfairhurst.co.uk
                    [text] => This is a sample comment.
                    [created] => 0000-00-00 00:00:00
                )
            [1] => Array
                (
                    [id] => 2
                    [post_id] => 1
                    [name] => James
                    [email] => info@jamesfairhurst.co.uk
                    [text] => This is another sample comment.
                    [created] => 0000-00-00 00:00:00
                )
        )
)

もっとお手伝いできることがあれば教えてください..

于 2013-05-09T04:06:42.610 に答える