在 cakephp 中按消息日期关系对论坛主题进行排序


Sort forum topics by messages date relationship in cakephp

我正在使用cakephp 2框架。

我有一个具有"有很多"关系的模型"主题":

public $hasMany=array(
                    'Messages' => array(
                                        'className' => 'Messages',
                                        'foreignKey'=>'id_topic',
                                        'dependent'=>true,
                                    ),
                    );

在我的控制器中,我做到了:

$this->paginate = array(
                    'Topic'    => array(
                            'limit'    => 10,
                            'recursive' => 2,
                        )
                );
$entities = $this->paginate('Topic');

它运行良好,但现在我想按最后一条消息的日期对我的主题进行排序,但我找不到方法。

像这样:

$this->paginate = array(
                    'Topic'    => array(
                            'limit'    => 10,
                            'recursive' => 2,
                            'order'=>'Messages.created desc'
                        )
                );

但我得到Column not found: 1054 Unknown column 'Messages.created' in 'order clause'

有什么想法吗?谢谢

好的,现在我正在为我展示工作代码,也许它可以帮助你

$this->Topic->find('all');
        $this->paginate = array(
                            //'conditions' => array('id !=' => '6'),
                            'limit' => 6,
                            'order' => array('Topic.modified' => 'desc')
                            );
    $data = $this->paginate('Topic');

就我而言,我的topics表中有模型Topic,字段modified

最后,我在主题表"last_message_date"中添加一列

$this->paginate = array(
                    'Topic'    => array(
                            'limit'    => 10,
                            'recursive' => 2,  
                           'order'=>array('last_message_date'=>'desc')
                        )
                );

不是一个真正的正确解决方案,但我不知道