在蛋糕中排序其他模型


Sort in cakephp other model

我有多个表相互关联:

  1. 消息
  2. 消息详细信息

消息详细信息具有字段 idMessage_idcreated_datemessage

我想在消息详细信息created_date对消息进行排序。

我该怎么做?

$messages = $this->Message->find('all', array(
                    'conditions' => array('Message.status'=> 'progress')
                ));
// What do I do now to sort it on message_details created time?
class  MessageDetail extends AppModel {
  //public $hasMany=array('MessageDetail');
  //$belongsTo = array('Message');
   public $belongsTo = array(
    'Message' => array(
        'className'    => 'Message',
        'foreignKey'   => 'message_id'
    )       
     );
}
class  Message extends AppModel {
  public $hasMany=array('MessageDetail');
}

你能试试这段代码吗,你需要降序放 DESC 而不是 ASC

           $messages = $this->Message->find('all', array(
           'conditions' => array('Message.status'=> 'progress'),
           'order' => array('MessageDetails.created_date ASC')
            ));

您可以简单地传递顺序,并提及要排序的字段,请参见下文:

$messages = $this->Message->find('all', array(
    'conditions' => array('Message.status'=> 'progress'),
    'ORDER' => 'MessageDetail.created_date ASC'
));

更新

您的消息.php模型将如下所示:

class Message extends AppModel {
    public $hasMany = array(
        'MessageDetail' => array(
            'className' => 'MessageDetail',
            'foreignKey' => 'message_id',
            'order' => 'MessageDetail.created_date DESC'
        ),  
    );
}

和消息详细信息.php模型将是:

class MessageDetail extends AppModel {
    public $belongsTo = array(
        'Message' => array(
            'className' => 'Message',
            'foreignKey' => 'message_id'
        )
    );
}