CakePHP发现条件不起作用

时间:2012-10-23 09:27:02

标签: cakephp

我有一个关于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;        
    } 

}

2 个答案:

答案 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

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

您已多次提出类似问题。这是一个基本概念。