2013-07-03 35 views
6

Tôi đã có một bảng với một cột request_time. Sẽ có nhiều yêu cầu và tôi muốn nhận yêu cầu mới nhất của một tên người dùng cụ thể:Cách tìm bản ghi mới nhất trong cakephp?

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

Ở trên không có tác dụng. Có một cái gì đó trong CakePHP hoặc tôi cần phải làm của riêng tôi -> query()?

+0

nào bạn đã tự động tăng lên khóa chính? –

+0

Điều này thêm về các truy vấn dựa trên thời gian, nhưng tôi có thể xem cách ID có thể được sử dụng. – trafalgar

Trả lời

12

Bạn có thể sử dụng như sau:

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

đâu id là tự động tăng lên chính Chìa khóa. Điều này sẽ cung cấp cho bạn bản ghi (đơn) mới nhất, nếu bạn đang sử dụng first trong phương thức tìm kiếm hoặc sử dụng all thay thế.

Nếu bạn không sử dụng khóa chính, bạn có thể thử như sau:

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

Nếu bạn có khóa chính tự động tăng lên sau đó bạn tìm thấy những kỷ lục mới nhất của bảng này thử này

$this->Requests->find('find', 'conditions' => array ('username' => $username), 
           'order' => array('id' => 'DESC') 
        ); 
Các vấn đề liên quan