2016-08-01 2 views
0

У меня есть следующий код:CakePHP упорядочить по DESC не работает

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); 

Код возвращающегося желаемых результатов. Единственная проблема заключается в том, что это NOT, давая обратно в DESCENDING ORDER of id.

Что я делаю неправильно?

ответ

1

попробовать это:

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

conditions и order ключи идут в том же массиве, правильный синтаксис

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

или

'order' => array('Message.id' => 'desc') 
-2
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); 
+1

в этом способом Ключ «заказ» находится внутри массива «условия». Я думаю, что это даст ошибку – arilia

+0

$ conditions ['conditions'] = array ('field' => 'your conditions'); $ conditions ['order'] = array ('Field' => 'ASC') свойство работы! –

+0

, поэтому у вас будут «условия» => ['conditions' => [...], 'order' => [...]] '. Я не думаю, что это сработает, но на самом деле я никогда не пробовал – arilia

Смежные вопросы