0

Comment.post_id = Post.id という条件ですべてのコメントを取得したい CommentsView のアクションがありますが、デバッグすると空の配列が返されます。

アクション コメント表示:

public function commentsview()
{ 

    $commentsview = $this->Comment->find('all', array('conditions'=>array('Comment.post_id' => 'Post.id')));

    if (!empty($this->params['requested'])) 
    {            
        return $commentsview;        
    } 

}
4

2 に答える 2

2

異なる方法で渡される結合の条件を提供しています。条件引数はWHERE用です。

ただし、指定する必要があるのは次のとおりです。

$comments = $this->Comment->find('all',
    array(
        'conditions'=>array(
            'Comment.post_id' => $post_id
        )
    )
);

または、PostsController からコメントを取得しているとき

$comments = $this->Post->Comment->find('all',
    array(
        'fields'=>array(
            'Comment.*'
        )
        'conditions'=>array(
            'Post.id' => $post_id
        )
    )
);
于 2012-10-23T09:40:59.177 に答える
0

関数を次のように変更します。

public function commentsview($post_id=null) { 

    $commentsview = $this->Comment->find('all', array('conditions'=>
                                            array('Comment.post_id' => $post_id))
                                        );
    debug($commentsview);
    exit;

}

次の URL にアクセスしてください。yourapp.com/comments/commentsview/37

コメントが出力されます。これで、それが機能していることがわかります。次に、それをビューに渡すか、何でもできます。

同じような質問を何度かしています。これはBASICのコンセプトです。

于 2012-10-23T11:19:42.020 に答える