63 lines
1.6 KiB
PHP
63 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Controller\CAPI;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Doctrine\ORM\Query;
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
use Catalyst\APIBundle\Controller\APIController;
|
|
use Catalyst\APIBundle\Response\APIResponse;
|
|
|
|
use App\Entity\Municipality;
|
|
|
|
use Catalyst\APIBundle\Access\Generator as ACLGenerator;
|
|
|
|
class MunicipalityController extends APIController
|
|
{
|
|
protected $acl_gen;
|
|
|
|
public function __construct(ACLGenerator $acl_gen)
|
|
{
|
|
$this->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);
|
|
}
|
|
}
|