Я создал функцию запроса, чтобы выбрать несколько периодов и для каждого периода максимальную дату и количество дней.
$periods = $this->Periods->find('all')->contain([
'Days' => function($q) {
return $q->select([
'Days.period_id',
'max_date' => $q->func()->max('Days.date'),
'count_days' => $q->func()->count('Days.period_id')
])->group(['Days.period_id']);
}
]);
Когда я отлаживаю Days, это будет так:
[
(int) 0 => object(Cake\ORM\Entity) {
'period_id' => (int) 1,
'max_date' => '2016-11-21',
'count_days' => (int) 2,
'[new]' => false,
'[accessible]' => [
'*' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'Periods.Days'
}
]
Теперь моя проблема в том, что когда я буду использовать Days, я всегда должен использовать число, подобное $period['days'][0]['max_date']
, потому что это многомерный массив. Как я могу сделать так, чтобы я мог использовать $period['days'][max_date]
.