src/Repository/Director/DirectorRepository.php line 14

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Slivki\Repository\Director;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Slivki\Entity\Director;
  7. use Slivki\Exception\Director\DirectorNotFoundException;
  8. final class DirectorRepository extends ServiceEntityRepository implements DirectorRepositoryInterface
  9. {
  10.     public function __construct(ManagerRegistry $registry)
  11.     {
  12.         parent::__construct($registryDirector::class);
  13.     }
  14.     public function findById(int $id): ?Director
  15.     {
  16.         $queryBuilder $this->createQueryBuilder('director');
  17.         $expr $queryBuilder->expr();
  18.         return $queryBuilder
  19.             ->andWhere($expr->eq('director.ID'':id'))
  20.             ->setParameter(':id'$id)
  21.             ->getQuery()
  22.             ->getOneOrNullResult();
  23.     }
  24.     public function getById(int $id): Director
  25.     {
  26.         $director $this->findById($id);
  27.         if (!$director instanceof Director) {
  28.             throw new DirectorNotFoundException();
  29.         }
  30.         return $director;
  31.     }
  32.     public function getByEmail(string $email): Director
  33.     {
  34.         $queryBuilder $this->createQueryBuilder('director');
  35.         $expr $queryBuilder->expr();
  36.         $director $queryBuilder
  37.             ->andWhere($expr->eq('director.email'':email'))
  38.             ->setParameter('email'$email)
  39.             ->getQuery()
  40.             ->getOneOrNullResult();
  41.         if (!$director instanceof Director) {
  42.             throw new DirectorNotFountException();
  43.         }
  44.         return $director;
  45.     }
  46. }