0

我对 CommentsView 有一个操作,我想在其中检索所有评论,条件是 Comment.post_id = Post.id 但是当我调试它时,它给了我一个空数组。

动作评论查看:

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;

}

访问此网址:yourapp.com/comments/commentsview/37

评论将被输出。现在你知道它正在工作。然后你可以将它传递给视图或做任何事情。

你已经多次问过类似的问题。这是一个基本的概念。

于 2012-10-23T11:19:42.020 回答