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';