Мне нужно получить результат из моей базы данных как ассоциативный массив. У меня есть сады и семьи, которые относятся к этим садам как (от одного до многих). Поэтому для каждого сада мне нужно собрать множество семей. Поэтому сад должен быть ключевым, а массив семей - это ценности. Так что я пробовал:Symfony Doctrine Group
public function getFamiliesInGardens($client)
{
$qb = $this->createQueryBuilder('g');
$qb
->select(['g.name as garden', 'family.name', 'family.id'])
->join('g.growing', 'growing')
->join('growing.plant', 'plant')
->join('plant.family', 'family')
->where('g.client = :client')
->orderBy('g.name')
->addOrderBy('growing.endDate', 'DESC')
->setParameter('client', $client);
$grow = $qb->getQuery()->getArrayResult();
return $grow;
}
я получил:
[0] => array(3) {
["garden"]=> string(1) "1"
["name"]=>string(9) "Brassicas"
["id"]=> int(13)
}
[1] =>
array(3) {
["garden"]=> string(1) "1"
["name"]=> string(13) "Miscellaneous"
["id"]=> int(18)
}
Но я ожидал:
[0] => array(1) {
["1"] => array(2) {
[0] => array(2) {
["name"] =>string(9) "Brassicas"
["id"] => int(13)
},
[1] => array(2) {
["name"]=>string(9) "Miscellaneous"
["id"]=> int(18)
},
}
}
Если я добавлю группу по саду, результат будет таким же, как и первый, но сад будет выполняться один раз без повтора. То же самое для семьи. Итак, что я могу изменить, чтобы получить массив: garden => family?