acl_gen = $acl_gen; } public function getAll(EntityManagerInterface $em) { $this->denyAccessUnlessGranted('municipality.list', null, 'No access.'); $muns = $em->getRepository(Municipality::class)->findBy([], ['province_name' => 'ASC', 'name' => 'ASC']); $result = []; $provinces = []; foreach ($muns as $m) { $pid = $m->getProvinceID(); $pname = $m->getProvinceName(); $mid = $m->getID(); $mname = $m->getName(); if (!isset($provinces[$pid])) { $provinces[$pid] = [ 'id' => $pid, 'name' => $pname, 'municipalities' => [], ]; } // error_log("$pid - $pname - $mid - $mname"); $provinces[$pid]['municipalities'][$mid] = [ 'id' => $mid, 'name' => $mname, ]; } $data = [ 'provinces' => $provinces, ]; return new APIResponse(true, 'Municipalities loaded.', $data); } }