<?php
declare(strict_types=1);
namespace Slivki\Repository\InfoPage;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use Slivki\Entity\InfoPage;
use Slivki\Exception\InfoPage\InfoPageNotFoundException;
final class InfoPageRepository extends ServiceEntityRepository implements InfoPageRepositoryInterface
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, InfoPage::class);
}
public function findById(int $id): ?InfoPage
{
$queryBuilder = $this->createQueryBuilder('ip');
$expr = $queryBuilder->expr();
return $queryBuilder
->andWhere($expr->eq('ip.ID', ':id'))
->setParameter(':id', $id)
->getQuery()
->getOneOrNullResult();
}
public function getById(int $id): InfoPage
{
$infoPage = $this->findById($id);
if (!$infoPage instanceof InfoPage) {
throw new InfoPageNotFoundException();
}
return $infoPage;
}
}