<?php
namespace App\Repository\Admin;
use App\Entity\Admin\Article;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query;
use Doctrine\Persistence\ManagerRegistry;
/**
* @method Article|null find($id, $lockMode = null, $lockVersion = null)
* @method Article|null findOneBy(array $criteria, array $orderBy = null)
* @method Article[] findAll()
* @method Article[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class ArticleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Article::class);
}
public function findAllByDateDesc(): Query
{
return $this->createQueryBuilder('a')
->orderBy('a.dateAjoutAt', 'DESC')
->getQuery()
;
}
public function findByThemeOrderedByDateDesc($theme): Query
{
return $this->createQueryBuilder('a')
->andWhere('a.theme = :theme')
->setParameter('theme', $theme)
->orderBy('a.dateAjoutAt', 'DESC')
->getQuery()
;
}
public function findArticlesForHome()
{
$qb = $this->createQueryBuilder('a');
return $qb
->select('a')
->andWhere('a.pourAccueil = 1')
->getQuery()
->getResult()
;
}
public function findLastArticle()
{
return $this->createQueryBuilder('a')
->orderBy('a.id', 'DESC')
->setMaxResults(1)
->getQuery()
->getResult()
;
}
public function find5LastArticles()
{
return $this->createQueryBuilder('a')
->orderBy('a.id', 'DESC')
->setMaxResults(5)
->getQuery()
->getResult()
;
}
public function countArticles()
{
$qb = $this->createQueryBuilder('a');
return $qb
->select('count(a.id)' )
->getQuery()
->getSingleScalarResult();
}
// /**
// * @return Article[] Returns an array of Article objects
// */
/*
public function findByExampleField($value)
{
return $this->createQueryBuilder('a')
->andWhere('a.exampleField = :val')
->setParameter('val', $value)
->orderBy('a.id', 'ASC')
->setMaxResults(10)
->getQuery()
->getResult()
;
}
*/
}