通过cakephp中的消息日期关系对论坛主题进行排序

时间:2016-02-24 17:33:10

标签: php cakephp cakephp-2.0 relationship

我正在使用cakephp 2框架。

我有一个带有“hasmany”关系的模型“主题”:

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'

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

最后,我在主题表“last_message_date”

中添加了一列
$this->paginate = array(
                    'Topic'    => array(
                            'limit'    => 10,
                            'recursive' => 2,  
                           'order'=>array('last_message_date'=>'desc')
                        )
                );

不是真正合适的解决方案,但我不知道