src/Repository/ObjectiveRepository.php line 50

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Objective;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. /**
  7.  * @method Objective|null find($id, $lockMode = null, $lockVersion = null)
  8.  * @method Objective|null findOneBy(array $criteria, array $orderBy = null)
  9.  * @method Objective[]    findAll()
  10.  * @method Objective[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  11.  */
  12. class ObjectiveRepository extends ServiceEntityRepository
  13. {
  14.     public function __construct(ManagerRegistry $registry)
  15.     {
  16.         parent::__construct($registryObjective::class);
  17.     }
  18.     // /**
  19.     //  * @return Objective[] Returns an array of Objective objects
  20.     //  */
  21.     /*
  22.     public function findByExampleField($value)
  23.     {
  24.         return $this->createQueryBuilder('o')
  25.             ->andWhere('o.exampleField = :val')
  26.             ->setParameter('val', $value)
  27.             ->orderBy('o.id', 'ASC')
  28.             ->setMaxResults(10)
  29.             ->getQuery()
  30.             ->getResult()
  31.         ;
  32.     }
  33.     */
  34.     /*
  35.     public function findOneBySomeField($value): ?Objective
  36.     {
  37.         return $this->createQueryBuilder('o')
  38.             ->andWhere('o.exampleField = :val')
  39.             ->setParameter('val', $value)
  40.             ->getQuery()
  41.             ->getOneOrNullResult()
  42.         ;
  43.     }
  44.     */
  45.     public function findByPage($page$resultsPerPage$order 'ASC'$orderBy ""$owner)
  46.     {
  47.         $owner intval($owner);
  48.         $order filter_var $orderFILTER_SANITIZE_STRING);
  49.         $orderBy filter_var $orderByFILTER_SANITIZE_STRING);
  50.         try{
  51.             $query $this->createQueryBuilder('a')
  52.                 ->where('a.user = :user')
  53.                 ->setParameter('user'$owner)
  54.                 ->setMaxResults($resultsPerPage)
  55.                 ->setFirstResult(($page 1) * $resultsPerPage);
  56.             if ($orderBy === "" ) {
  57.                 $query->addSelect("(CASE WHEN a.appraisalYear = '' THEN 0 ELSE 1 END) AS HIDDEN order ")
  58.                 ->addOrderBy('order''ASC')
  59.                 ->addOrderBy('a.id''DESC'); 
  60.             } else {
  61.                 $query->orderBy("a." $orderBy$order);
  62.             }
  63.             return $query->getQuery()->getResult();
  64.         }catch (\Exception $exception){
  65.             return [];
  66.         }
  67.     }
  68.     public function countByPage($owner)
  69.     {
  70.         $owner intval($owner);
  71.         try{
  72.             $query $this->createQueryBuilder('a')
  73.                 ->where('a.user = :user')
  74.                 ->setParameter('user'$owner)
  75.                 ->select('count(distinct(a.id))');
  76.             return $query->getQuery()->getSingleScalarResult();
  77.         }catch (\Exception $exception){
  78.             return [];
  79.         }
  80.     }
  81. }