<?php
// src/Controller/CityController.php
namespace App\Controller;
use App\Repository\VillesRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
class CityController extends AbstractController
{
/**
* @Route("/api/villes", name="api_villes", methods={"GET"})
*/
public function getVilles(VillesRepository $villesRepository, Request $request): JsonResponse
{
$search = $request->query->get('q', '');
$villes = $villesRepository->createQueryBuilder('v')
->where('v.VilleNomReel LIKE :search')
->orWhere('v.VilleCodePostal LIKE :search')
->setParameter('search', $search . '%')
->setMaxResults(10)
->getQuery()
->getResult();
$results = [];
foreach ($villes as $ville) {
$results[] = [
'id' => $ville->getId(),
'text' => $ville->getVilleNomReel() . ' (' . $ville->getVilleCodePostal() . ')',
'lat' => $ville->getVilleLatitudeDeg(),
'lng' => $ville->getVilleLongitudeDeg(),
];
}
return new JsonResponse(['results' => $results]);
}
}
?>