osm-labo/src/Repository/StatsRepository.php

80 lines
2.5 KiB
PHP
Raw Normal View History

2025-05-26 11:32:53 +02:00
<?php
namespace App\Repository;
use App\Entity\Stats;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<Stats>
*/
class StatsRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Stats::class);
}
2025-07-16 17:00:09 +02:00
/**
* Find all cities without using problematic columns
*
* @return Stats[] Returns an array of Stats objects
*/
public function findAllCitiesWithoutLabourage(): array
{
// Use native SQL to avoid ORM mapping issues with missing columns
$conn = $this->getEntityManager()->getConnection();
$sql = '
SELECT id, zone, completion_percent, places_count, avec_horaires,
avec_adresse, avec_site, avec_accessibilite, avec_note,
name, population, siren, code_epci, codes_postaux,
date_created, date_modified, avec_siret, avec_name,
osm_data_date_min, osm_data_date_avg, osm_data_date_max,
budget_annuel, lat, lon
FROM stats
WHERE zone != :global_zone
';
$stmt = $conn->prepare($sql);
$resultSet = $stmt->executeQuery(['global_zone' => '00000']);
$results = $resultSet->fetchAllAssociative();
// Get existing Stats entities by ID
$statsEntities = [];
foreach ($results as $row) {
$stats = $this->find($row['id']);
if ($stats) {
$statsEntities[] = $stats;
}
}
return $statsEntities;
}
2025-05-26 11:32:53 +02:00
// /**
// * @return Stats[] Returns an array of Stats objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('s.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?Stats
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}