2011-08-08 54 views
1

我正在使用傳統的CakePHP 1.1應用程序,並且理想情況下需要修改某些數據庫查詢。雖然我更習慣於使用1.2和1.3,但我發現一些難以使用的「舊式」代碼。下面的查詢工作在1.1:在CakePHP 1.1中findAll

$events = $this->Event->findAll(array('Event.id'=>$event_ids)); 

我想另一個條件添加到該數組,例如,「Event.start>」 => [日期]」,但任何企圖都這樣做似乎導致在查詢返回null。

要添加到我的困惑,蛋糕1.1食譜建議的findAll的工作原理如下:

  • 的findAll
  • 串$條件
  • 陣列$領域
  • 串$爲了
  • INT $ limit
  • int $ page
  • int $ recursive

如果$ conditions參數應該是一個字符串,那麼它怎麼會經常以數組的形式出現(不僅在這個應用程序中,我在網絡上的其他地方看到過它) ?從CakePHP 1.1獲得我想要的結果的最佳途徑是什麼?將整個事物升級到現代版本的Cake的缺點?

回答

2

看着CakePHP 1.1 API它建議第一個參數$conditions需要mixed值。

但是,大約是CakePHP 1.2 RC2,比較運算符從右向左移動(或從值到鍵)以保存串聯。

下希望應該爲你工作:

$events = $this->Event->findAll(array(
    'Event.id' => $event_ids, 
    'Event.start' => '> ' . gmdate(DATE_ATOM), 
)); 
+0

其實我剛纔發現我自己比較運算1.1在右邊的例子......這確實是問題。很高興知道以供將來參考! – thesunneversets