2013-07-03 37 views
6

我有一個列request_time的表。將有多個請求,我想獲得特定用戶名的最新請求:如何查找cakephp中的最新記錄?

$this->Requests->find('all', 'conditions' => array (
               'username' => $username, 
               'MAX'=> 'request_time')); 

上述不起作用。 Cakephp中有什麼或我需要做我自己的 - > query()嗎?

+0

你有自動遞增的主鍵? –

+0

這更多關於基於時間的查詢,但我可以看到如何使用ID。 – trafalgar

回答

12

您可以使用以下方法:

$this->Requests->find('first', array('conditions' => array('username' => $username), 
           'order' => array('id' => 'DESC'))); 

哪裏id是自動遞增的主鍵。 如果您在查找方法中使用first,或者使用all代替,則這會爲您提供最新(單個)記錄。

如果您不使用主鍵,你可以嘗試以下方法:

$this->Requests->find('first', array('conditions' => array('username' => $username), 
           'order' => array('request_time' => 'DESC'))); 
3

如果您有自動遞增的主鍵,然後你發現這個表的最新記錄試試這個

$this->Requests->find('find', 'conditions' => array ('username' => $username), 
           'order' => array('id' => 'DESC') 
        );