我有一个关于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;
}
}
答案 0 :(得分: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
)
)
);
答案 1 :(得分: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
将输出评论。现在你知道它正在发挥作用。然后你可以将它传递给视图或做任何事情。
您已多次提出类似问题。这是一个基本概念。