2012-10-23 51 views
0

我有CommentsView的訴訟中,我想檢索所有與Comment.post_id = Post.id但是當我調試它,它給了我一個空數組條件的意見。CakePHP的發現條件不工作

行動CommentsView:

public function commentsview() 
{ 

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

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

} 
+0

這是其在背面運行而不添加任何條件選擇'Comment'.'id','Comment'.'comments','Comment'.'created','Comment'.'user_id'查詢, 'Comment'.'note_id','Note'.'id','Note'.'user_id','Note'.'notes','Note'.''ated,'User'.'''''User用戶名,用戶名,用戶名,用戶名,密碼,用戶名,用戶名,用戶名,用戶名,用戶名。 '圖像','用戶'''''''''''''''''''''''''''''''''' 'note_id' ='Note'.'id')LEFT JOIN'fyp'.'users' AS'User' ON('Comment'.'user_id' ='User'.'id')注意: –

回答

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 
     ) 
    ) 
); 
+0

什麼是$ post_id在你的第一個例子? –

+0

希望你明白了我的觀點?我希望評論表的post_id字段必須等於POST表的ID字段 Comment.post_id = Post.id 我正在做這一切CommentsController –

+0

你的'條件'只有在它應該是有意義的加入條件。但cakephp自動加入評論。所以如果你想要所有帖子的所有評論:$ this-> loadModel('Post'); $這個 - >後>找到( '所有'); – Sam

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

評論將被輸出。現在你知道它正在工作。然後你可以將它傳遞給視圖或做任何事情。

您已經問了幾次類似的問題。這是一個基本的概念。

+0

羅斯我很抱歉說,但你還沒有得到我的觀點呢... –