src/Repository/ZonesInternatRepository.php line 79

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Etablissement;
  4. use App\Entity\ZonesInternat;
  5. use Doctrine\ORM\Query\Expr\Join;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  8. /**
  9.  * @method ZonesInternat|null find($id, $lockMode = null, $lockVersion = null)
  10.  * @method ZonesInternat|null findOneBy(array $criteria, array $orderBy = null)
  11.  * @method ZonesInternat[]    findAll()
  12.  * @method ZonesInternat[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  13.  */
  14. class ZonesInternatRepository extends ServiceEntityRepository
  15. {
  16.     public function __construct(ManagerRegistry $registry)
  17.     {
  18.         parent::__construct($registryZonesInternat::class);
  19.     }
  20.     // /**
  21.     //  * @return ZonesInternat[] Returns an array of ZonesInternat objects
  22.     //  */
  23.     /*
  24.     public function findByExampleField($value)
  25.     {
  26.         return $this->createQueryBuilder('z')
  27.             ->andWhere('z.exampleField = :val')
  28.             ->setParameter('val', $value)
  29.             ->orderBy('z.id', 'ASC')
  30.             ->setMaxResults(10)
  31.             ->getQuery()
  32.             ->getResult()
  33.         ;
  34.     }
  35.     */
  36.     /*
  37.     public function findOneBySomeField($value): ?ZonesInternat
  38.     {
  39.         return $this->createQueryBuilder('z')
  40.             ->andWhere('z.exampleField = :val')
  41.             ->setParameter('val', $value)
  42.             ->getQuery()
  43.             ->getOneOrNullResult()
  44.         ;
  45.     }
  46.     */
  47.     /**
  48.      * @return ZonesInternat[] Returns an array of ZonesInternat objects
  49.      */
  50.     public function findByZone(string $zone)
  51.     {
  52.         return $this->createQueryBuilder('z')
  53.             ->leftJoin("z.etablissement"'etablissement')
  54.             ->addSelect('etablissement')
  55.             ->leftJoin("etablissement.texteReferencement"'texteReferencement'// réduire les requetesSQL car OneToOne
  56.             ->addSelect('texteReferencement')
  57.             ->leftJoin("etablissement.ville"'ville'// réduire les requetesSQL quand on affiche la ville
  58.             ->addSelect('ville')
  59.             ->leftJoin('ville.coordonnees''villeCoordonnees'// réduire les requetesSQL car OneToOne
  60.             ->addSelect('villeCoordonnees')
  61.             ->andWhere('z.zone = :val')
  62.             // ->andWhere('etablissement.actif = 1')
  63.             // ->andWhere('etablissement.droitPageWeb = 1')
  64.             ->setParameter('val'$zone)
  65.             ->groupBy('z.etablissement')
  66.             ->orderBy('z.id''ASC')
  67.             ->getQuery()
  68.             ->getResult()
  69.         ;
  70.     }
  71. }