我有以下模型:
App::uses('AppModel', 'Model');
class Sync extends AppModel {
public $belongsTo = array(
'Unit' => array(
'className' => 'Sync',
'foreignKey' => 'parent_id'
)
);
public $hasMany = array(
'Consultant' => array(
'className' => 'Sync',
'foreignKey' => 'parent_id'
)
);
}
如果我这样做,$this->Sync->find('all')
我几乎可以按照我想要的方式返回一个数组:
Array
(
[0] => Array
(
[Sync] => Array
(
[id] => 22222
[parent_id] => 22222
[statistic_date] => 2012-11-14 00:00:00
)
[Unit] => Array
(
[id] => 22222
[parent_id] => 22222
[statistic_date] => 2012-11-14 00:00:00
)
[Consultant] => Array
(
[0] => Array
(
[id] => 11111
[parent_id] => 22222
[statistic_date] => 2011-12-15 00:00:00
)
[1] => Array
(
[id] => 33333
[parent_id] => 22222
[statistic_date] => 2011-12-14 00:00:00
)
)
)
)
问题是我想对顾问做一个条件。像这样:
$this->Sync->Consultant->find('all', array(
'conditions' => array(
'Consultant.statistic_date BETWEEN ? AND ?' => 'array(
'2011-12-01 00:00:00', '2011-12-31 00:00:00'
)'
)
))
但是它并没有给我一个想要的数组:
Array
(
[0] => Array
(
[Unit] => Array
(
[id] => 22222
[parent_id] => 22222
[statistic_date] => 2012-11-14 00:00:00
)
[Consultant] => Array
(
[id] => 11111
[parent_id] => 22222
[statistic_date] => 2011-11-15 00:00:00
)
)
[1] => Array
(
[Unit] => Array
(
[id] => 22222
[parent_id] => 22222
[statistic_date] => 2012-12-14 00:00:00
)
[Consultant] => Array
(
[id] => 33333
[parent_id] => 22222
[statistic_date] => 2011-12-14 00:00:00
)
)
)
我想要这个表格:
Array
(
[0] => Array
(
[Unit] => Array
(
[id] => 22222
[parent_id] => 22222
[statistic_date] => 2012-11-14 00:00:00
)
[Consultant] => Array
(
[0] => Array
(
[id] => 11111
[parent_id] => 22222
[statistic_date] => 2011-12-15 00:00:00
)
[1] => Array
(
[id] => 33333
[parent_id] => 22222
[statistic_date] => 2011-12-14 00:00:00
)
)
)
)
你如何做到这一点?我能想到的可能解决方案是使用包含或 Hash:: 类,但不知道如何。
对于此事的任何帮助将不胜感激。