1つのクエリで返そうとしている4つのモデル(Location-> StatisticsCategory-> StatisticsItem-> Statistics)があります。クエリがLocationのレベルで開始されるまで、結果は期待どおりです。その時点で、データの戻り値にはStatisticItemの3番目の関連付けまでのすべてが含まれますが、すべてのStatisticはnullです。第4レベルの関連付け(少なくともここでは)がデータを返さない理由はありますか?
以下は、AppModelでContainable動作がオンになっているStatisticsControllerで使用しているコードです。
$stats = $this->Location->find('all', array(
'fields' => array(
'Location.id',
'Location.location'
),
'conditions' => array(),
'recursive' => 2,
'contain' => array(
'StatisticCategory' => array(
'fields' => array(
'StatisticCategory.id',
'StatisticCategory.location_id',
'StatisticCategory.category'
),
'StatisticItem' => array(
'fields' => array(
'StatisticItem.id',
'StatisticItem.statistic_category_id',
'StatisticItem.item'
),
'Statistic' => array(
'fields' => array(
'Statistic.id',
'Statistic.statistic_item_id',
'Statistic.date',
'Statistic.number'
),
'conditions' => array(
'Statistic.date' => $date
)
),
'order' => array('StatisticItem.item')
),
'order' => array('StatisticCategory.category')
)
),
'order' => array('Location.location')
));