src/AMZ/Core/Repository/PageRepository.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\AMZ\Core\Repository;
  3. use App\AMZ\Core\DataType\PostStatusType;
  4. use App\AMZ\Core\Entity\Page;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use function Doctrine\ORM\QueryBuilder;
  8. /**
  9.  * @method Page|null find($id, $lockMode = null, $lockVersion = null)
  10.  * @method Page|null findOneBy(array $criteria, array $orderBy = null)
  11.  * @method Page[]    findAll()
  12.  * @method Page[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  13.  */
  14. class PageRepository extends ServiceEntityRepository
  15. {
  16.     public function __construct(ManagerRegistry $registry)
  17.     {
  18.         parent::__construct($registryPage::class);
  19.     }
  20.     public function getPageBySlug($slug){
  21.         $qb $this->getQueryBuilder();
  22.         $qb->andWhere(
  23.             $qb->expr()->eq('post.slug'$qb->expr()->literal($slug))
  24.         );
  25.         $qb->setMaxResults(1)->setFirstResult(0);
  26.         return $qb->getQuery()->getSingleResult();
  27.     }
  28.     public function getQueryBuilder(){
  29.         $qb $this->createQueryBuilder("page");
  30.         $qb->leftJoin('page.post','post');
  31.         $qb->andWhere(
  32.             $qb->expr()->eq('page.deleted'$qb->expr()->literal(PostStatusType::POST_STATUS_NOT_DELETED))
  33.         );
  34.         return $qb;
  35.     }
  36.     // /**
  37.     //  * @return Page[] Returns an array of Page objects
  38.     //  */
  39.     /*
  40.     public function findByExampleField($value)
  41.     {
  42.         return $this->createQueryBuilder('p')
  43.             ->andWhere('p.exampleField = :val')
  44.             ->setParameter('val', $value)
  45.             ->orderBy('p.id', 'ASC')
  46.             ->setMaxResults(10)
  47.             ->getQuery()
  48.             ->getResult()
  49.         ;
  50.     }
  51.     */
  52.     /*
  53.     public function findOneBySomeField($value): ?Page
  54.     {
  55.         return $this->createQueryBuilder('p')
  56.             ->andWhere('p.exampleField = :val')
  57.             ->setParameter('val', $value)
  58.             ->getQuery()
  59.             ->getOneOrNullResult()
  60.         ;
  61.     }
  62.     */
  63. }