src/Repository/OrganizationRepository.php line 58

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Organization;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. /**
  7.  * @method Organization|null find($id, $lockMode = null, $lockVersion = null)
  8.  * @method Organization|null findOneBy(array $criteria, array $orderBy = null)
  9.  * @method Organization[]    findAll()
  10.  * @method Organization[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  11.  */
  12. class OrganizationRepository extends ServiceEntityRepository
  13. {
  14.     public function __construct(ManagerRegistry $registry)
  15.     {
  16.         parent::__construct($registryOrganization::class);
  17.     }
  18.     public function getOrganisations_(string $type_id,  ?string $search null, ?int $search_id null): mixed
  19.     {
  20.         $results $this->createQueryBuilder('o')
  21.             ->select('o')
  22.             ->where('o.type_organisation = :type')
  23.             ->setParameter('type'$type_id);
  24.         if ($search_id != null) {
  25.             $results
  26.                 ->andWhere('o.territory = :territory_id')
  27.                 ->setParameter('territory_id'$search_id);
  28.         } else if ($search != null) {
  29.             $results
  30.                 ->andWhere(
  31.                     'o.title LIKE :search OR o.subtitle LIKE :search OR o.ville LIKE :search
  32.                 '
  33.                 )
  34.                 ->setParameter('search''%' $search '%');
  35.         }
  36.         return $results->getQuery()->getResult();
  37.     }
  38.     public function getOrganisations(mixed $offset nullint $per_page 20mixed $in_territory_ids null): mixed
  39.     {
  40.         $results $this->createQueryBuilder('org')
  41.             ->select('org')
  42.             ->addSelect('terr')
  43.             ->leftJoin('org.territory''terr')
  44.             ->setMaxResults($per_page);
  45.         if ($offset != null) {
  46.             $results->setFirstResult($offset);
  47.         }
  48.         if ($in_territory_ids != null) {
  49.             $results->andWhere('terr.id IN (:in_territories)')
  50.                 ->setParameter('in_territories'$in_territory_ids);
  51.         }
  52.         $r $results->getQuery()->getResult();
  53.         return $r;
  54.     }
  55.     public function getOrganisation(int $id): mixed
  56.     {
  57.         return $this->createQueryBuilder('o')
  58.             ->select('o')
  59.             ->where('o.id = :id')
  60.             ->setParameter('id'$id)
  61.             ->getQuery()->getOneOrNullResult();
  62.     }
  63. }