我有兩個表主題和帖子。關係:主題hasmany帖子。在這兩個表中,都有一個狀態字段(Y,N)來緩和內容。在我的頁面中,我想列出至少一個帖子狀態爲N或主題狀態本身爲N的所有未主持主題。是否可以在cakephp2.0中使用find功能。我使用可包含的行爲。Cakephp複雜查找條件與計數子表
我也需要應用分頁。
我有兩個表主題和帖子。關係:主題hasmany帖子。在這兩個表中,都有一個狀態字段(Y,N)來緩和內容。在我的頁面中,我想列出至少一個帖子狀態爲N或主題狀態本身爲N的所有未主持主題。是否可以在cakephp2.0中使用find功能。我使用可包含的行爲。Cakephp複雜查找條件與計數子表
我也需要應用分頁。
這是一個解決辦法:
事情是這樣的:既然你的文章模型seaching
# TopicsController.php
$ids = $this->Topic->Post->find('list', array(
'fields' => array('Post.topic_id')
'conditions' => array(
'OR' => array(
'Post.status' => 'N',
'Topic.status' => 'N',
)
)
));
$this->paginate = array(
'conditions' => array('Topic.id' => (array)$ids),
'order' => array('Topic.created' => 'DESC')
);
$topics = $this->paginate('Topic');
,CakePHP將加入父主題數據,並且可以按兩種狀態進行過濾。 :)
如果我理解正確,你可以使用:
$conditions => array ('OR' => array ('Topic.status' => 'N', 'Post.status' => 'N'));
感謝您的答覆。我會解釋。我只需要列出主題。例如: - 如果topic1有兩個帖子postA和postB,並且postA狀態是N,我想列出topic1。另外,如果有topic2沒有帖子和狀態爲N,我想也列出 – binoy 2012-02-09 14:11:10
嗯,我沒有測試,但下面應該工作
$this->recursive = -1; //necessary to use joins
$options['joins'] = array(
'table' => 'posts',
'alias' => 'Post',
'type' => 'left',
'conditions' => array('Topic.id = Post.topic_id', 'Post.status = N') //updated code
);
$options['group'] = array('Topic.id HAVING count('Topic.id') >= 1 OR Topic.status = N');
$this->Topic->find('all', $options);
謝謝..似乎並沒有在cakephp2.x中工作。顯示查詢結果爲SELECT'Topic'.'id','Topic'.'user_id','Topic'.'title','Topic'.'''''''Topic'.'source','Topic'.'status ',FROM'topics' AS'Topic' posts Post LEFT Array WHERE 1 = 1 GROUP BY'Topic'.'id' HAVING count('Post'.'id')> = 1 OR'Topic'.'status' = 'N' – binoy 2012-02-09 15:50:00
我給出 $ this-> Topic-> find('all',array( 'joins'=> array( 'table'=>'posts', 'alias'=>'Post' , '類型'=> '左', '條件'=>數組( 'Topic.id = Post.topic_id AND Post.status = 'N' ) ) '基團'=>數組(' Topic.id HAVING count(Post.id)> = 1 OR Topic.status ='N' )))); – binoy 2012-02-09 15:52:03
我已更新帖子。看看它是否有幫助。 – Ehtesham 2012-02-09 16:00:30
謝謝..但我需要應用分頁。因此,每次我需要獲取所有ID號列表 – binoy 2012-02-10 06:06:24
@binoy時,我已更新..現在它對數據進行分頁。您需要在分頁之前搜索所有ID,因爲您的分頁不是基於直接查詢。您幾乎在此處有子查詢 – 2012-02-10 06:15:07