src/Repository/Articles/ArticlesRepository.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\Repository\Articles;
  3. use App\Entity\Articles\Articles;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Doctrine\ORM\NonUniqueResultException;
  7. /**
  8.  * @method Articles|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method Articles|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method Articles[]    findAll()
  11.  * @method Articles[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class ArticlesRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryArticles::class);
  18.     }
  19.     public function getArticleRandom(Articles $article$categorie$limit)
  20.     {
  21.         return $this->createQueryBuilder('a')
  22.             ->select('a''c')
  23.             ->leftJoin('a.categories''c')
  24.             ->andWhere('a.id != :article')
  25.             ->andWhere('c.id = :categorie')
  26.             ->setParameters(['article' => $article'categorie' => $categorie])
  27.             ->orderBy('RAND()')
  28.             ->setMaxResults($limit)
  29.             ->getQuery()
  30.             ->getResult()
  31.             ;
  32.     }
  33.     /**
  34.      * @param int $limit
  35.      * @return int|mixed|string
  36.      */
  37.     public function getIncontournable(int $limit)
  38.     {
  39.         return $this->createQueryBuilder('a')
  40.             ->andWhere('a.online = 1')
  41.             ->andWhere('a.incontournable = 1')
  42.             ->orderBy('a.id''DESC')
  43.             ->setMaxResults($limit)
  44.             ->getQuery()
  45.             ->getResult()
  46.             ;
  47.     }
  48.     /**
  49.      * @return int|mixed|string|null
  50.      * @throws NonUniqueResultException
  51.      */
  52.     public function featured()
  53.     {
  54.         return $this->createQueryBuilder('a')
  55.             ->andWhere('a.online = 1')
  56.             ->andWhere('a.featured = 1')
  57.             ->orderBy('a.updatedAt''DESC')
  58.             ->setMaxResults(1)
  59.             ->getQuery()
  60.             ->getOneOrNullResult()
  61.             ;
  62.     }
  63. }