2016-11-23 31 views
0

我已经创建了一个查询函数来选择一些时期和每个时期的最大日期和天数。CakePHP 3包含​​将给出一个多维数组

$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']); 
    } 
]); 

当调试天它会这样:

[ 
    (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' 
    } 
    ] 

现在我的问题是,当我将使用天,我送花儿给人必须使用一些像$period['days'][0]['max_date']因为它是一个多维数组。我怎样才能让我可以使用$period['days'][max_date]

回答

1

当您检索所有记录时,您的记录格式正确。 你不需要该数组中的多个记录吗?如果是这样,你只能检索单行。否则,您可以使用foreach循环:

foreach($periods as $p) { 
    echo $p->max_date; 
    echo $p->count_days; 
}