2012-07-25 163 views
0

我的問題很簡單。我有一個名爲'articles'的表,我希望得到前三個最近的文章訂單DESC。但我也希望這些文章如果發佈日期早於或等於今天就會顯示。所以我的要求中有其他條件。我的CakePHP的代碼如下:SQL請求無法正常工作

$this->set('lastArticles', $this->Article->find('all', array(
      'conditions' => array('Article.visible' => true), 
      'Article.publication_date <= ' => date('Y-m-d'), 
      'order' => array('Article.creation_date DESC', 'Article.id DESC'), 
      'limit' => 3 
     ))); 

但即使有出版日期>日期(「Y-M-d」)的文章,這些的人都顯示得問題!有人有想法嗎?預先感謝您的回答。

回答

1

看起來像您的publication_date條件不在條件數組中。你的代碼應該是這樣的:

$this->set('lastArticles', $this->Article->find('all', 
    array(
     'conditions' => array(
      'Article.visible' => true, 
      'Article.publication_date <= ' => date('Y-m-d') 
     ), 
     'order' => array(
      'Article.creation_date DESC', 
      'Article.id DESC' 
     ), 
     'limit' => 3 
    ))); 

有點額外的縮進和空白是你的朋友在這裏。

+0

感謝您的回答。我試過你的解決方案,它不起作用。儘管如此,該文章的發佈日期是2012-07-31,因此不應該顯示! – user1450730 2012-07-25 15:22:51

0
See this 

$conditions = array(
       'Article.visible' => true, 
       'Article.publication_date <= ' => date('Y-m-d') 
      ); 

$order = array('Article.creation_date DESC', 'Article.id DESC'); 

$lastArticles = $this->Article->find('all', array(
      'conditions' => $conditions, 
      'order' => $order, 
      'limit' => 3 
     ); 

$this->set('lastArticles', $lastArticles);