Saswat
Saswat

Reputation: 12806

CakePHP order by DESC not working

I have a following code:

if($item_id!=0)
{
  $conditions = array(
    'AND' => array(
      array('OR' => array(array('Message.receiver_id' =>$member_id), 
      array('Message.member_id' =>$member_id))), array('Message.item_id'=>$item_id)));
}
else if($trip_id!=0)
{
  $conditions = array(
    'AND' => array(
      array('OR' => array(array('Message.receiver_id' =>$member_id), 
      array('Message.member_id' =>$member_id))), array('Message.trip_id'=>$trip_id)));
}
$lastMessage=$this->Message->find('all',array('conditions'=>$conditions),
array('order'=>'Message.id DESC'));
print_r($lastMessage);

The code is returning the desired results. The only issue is that it is NOT giving the back in DESCENDING ORDER of id.

What am I doing wrong?

Upvotes: 0

Views: 5552

Answers (3)

sanjay verma
sanjay verma

Reputation: 257

try this:

$lastMessage=$this->Message->find('all', array('conditions' => $conditions,'order'=>array('Message.id' => 'DESC')));

Upvotes: 1

Jacek B Budzynski
Jacek B Budzynski

Reputation: 1413

if($item_id!=0)
{
    $conditions = array(
        'AND' => array(
            array('OR' => array(array('Message.receiver_id' =>$member_id),
            array('Message.member_id' =>$member_id))
            ),
            array('Message.item_id'=>$item_id)   
        )
    );
}
else if($trip_id!=0)
{
    $conditions = array(
        'AND' => array(
            array('OR' => array(array('Message.receiver_id' =>$member_id),
            array('Message.member_id' =>$member_id))
            ),
            array('Message.trip_id'=>$trip_id)   
        )
    );
}

$conditions = array('order' => 'Message.id DESC');

$lastMessage=$this->Message->find('all', array('conditions' => $conditions));
print_r($lastMessage);

Upvotes: -2

arilia
arilia

Reputation: 9398

The conditions and the order keys go in the same array, the correct syntax is

find(
    'all',
    array(
        'conditions'=>$conditions,
        'order'=> 'Message.id DESC'
    )
);

or

'order' => array('Message.id' => 'desc')

Upvotes: 3

Related Questions