Cakephp:通过相关模型查找订单

Cakephp:通过相关模型查找订单,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我有两个模型:事件和日期。一件事有许多日期。我想按最近的日期来安排活动。例如: [0] => Array ( [Event] => Array ( [id] => 1 [name] => Event 1 ) [Date] => Array

我有两个模型:事件和日期。一件事有许多日期。我想按最近的日期来安排活动。例如:

[0] => Array
        (
            [Event] => Array
                (
                    [id] => 1
                    [name] => Event 1
                )

            [Date] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [date] => 2015-02-05
                            [start_time] => 06:00:00
                            [end_time] => 17:00:00
                            [evento_id] => 1
                        )
                    [1] => Array
                        (
                            [id] => 2
                            [date] => 2015-02-06
                            [start_time] => 06:00:00
                            [end_time] => 17:00:00
                            [evento_id] => 1
                        )

                )

        )
[1] => Array
        (
            [Event] => Array
                (
                    [id] => 2
                    [name] => Event 2
                )

            [Date] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                            [date] => 2015-02-11
                            [start_time] => 06:00:00
                            [end_time] => 17:00:00
                            [event_id] => 2
                        )    
                )

        )
[2] => Array
        (
            [Event] => Array
                (
                    [id] => 3
                    [name] => Event 3
                )

            [Date] => Array
                (
                    [0] => Array
                        (
                            [id] => 5
                            [date] => 2015-02-02
                            [start_time] => 06:00:00
                            [end_time] => 17:00:00
                            [event_id] => 3
                        )
                    [1] => Array
                        (
                            [id] => 6
                            [date] => 2015-02-03
                            [start_time] => 06:00:00
                            [end_time] => 17:00:00
                            [event_id] => 3
                        )

                )

        )
所以,我想要检索事件的顺序是:事件3,事件1,事件2

这就是我调用find方法的方式:

$this->Event->find('all', array('contain' => array('Date' => array('conditions' => array('Date.date >=' => date('Y-m-d'))))));

使用Cakephp find方法可以做到这一点吗?谢谢。

像这样的东西就可以了

$this->Event->find('all', array(
    'contain' => array(
        'Date' => array(
            'conditions' => array('
                Date.date >=' => date('Y-m-d')
            )
        )
    ),
    order => array(
        'COUNT(Date.id)' => 'DESC'
    )

));

我得到了以下错误:error:SQLSTATE[42S22]:未找到列:1054“order子句”中的未知列“Date.id”。试图将订单移动到包含的“日期”,但仍然给我相同的订单。订单应作为“订单”输入,但我认为此处的GROUP_BY可能更合适是的,我在测试时修复了“订单”。但问题是'Date.id'不是事件表中的成员。如果我尝试联接而不是包含,会怎么样?它可能会有帮助吗?使用表的主键它不是通过查找,但可以使用。例如:将您的查找分配给$results,然后$resultsort=Hash::sort$results,'{n}.Date.{n}.Date',asc';