在cakephp中排序其他型号

时间:2015-06-11 13:26:25

标签: php cakephp

我有多个表相互关联:

  1. 消息
  2. 留言详情
  3. 邮件详细信息包含字段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');
    }
    

2 个答案:

答案 0 :(得分:0)

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

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

}

<强>更新

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

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

}

和MessageDetail.php模型将是:

@font-face {
    font-family: "Glyphicons Halflings";
    src: url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg");
}

答案 1 :(得分:0)

你能不能试试这个代码,你需要降序把DESC而不是ASC

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