2013-07-03 7 views
6

Mam tabelę z kolumną request_time. Będzie wiele żądań i chcę uzyskać najnowsze żądanie określonej nazwy użytkownika:Jak znaleźć najnowszą płytę w cakephp?

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

Powyższe nie działa. Czy jest coś w Cackephp lub czy muszę zrobić własne -> query()?

+0

czy masz auto zwiększane klucz podstawowy? –

+0

To więcej o kwerendach opartych na czasie, ale widzę, jak można używać identyfikatora. – trafalgar

Odpowiedz

12

można użyć następujących:

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

Gdzie id jest automatycznie zwiększany podstawowy klawisz. To da ci najnowszy (pojedynczy) rekord, jeśli używasz metody first w metodzie znajdowania, lub użyj zamiast tego all.

Jeśli nie używasz klucza podstawowego, można spróbować wykonać następujące czynności:

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

Jeśli masz auto-zwiększany klucza podstawowego następnie znaleźć ostatni rekord z tabeli spróbować

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