src/Repository/BeatRepository.php line 62

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Beat;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. /**
  7.  * @extends ServiceEntityRepository<Beat>
  8.  *
  9.  * @method Beat|null find($id, $lockMode = null, $lockVersion = null)
  10.  * @method Beat|null findOneBy(array $criteria, array $orderBy = null)
  11.  * @method Beat[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class BeatRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryBeat::class);
  18.     }
  19.     /**
  20.      * @return Beat[] Returns an array of Beat objects
  21.      */
  22.     public function findAllForHomepage(): array
  23.     {
  24.         return $this->createQueryBuilder('b')
  25.             ->orderBy('b.createdAt''ASC')
  26.             ->setMaxResults(6)
  27.             ->getQuery()
  28.             ->getResult()
  29.             ;
  30.     }
  31.     public function findAllFavoritedBeats($limit): array
  32.     {
  33.         return $this->createQueryBuilder('b')
  34.             ->orderBy('b.createdAt''ASC')
  35.             ->setMaxResults(6)
  36.             ->getQuery()
  37.             ->getResult()
  38.             ;
  39.     }
  40.     public function findAllFavoritedBeatsByAuthor($author,$limit): array
  41.     {
  42.         return $this->createQueryBuilder('b')
  43.             ->andWhere('b.author = :author')
  44.             ->setParameter('author'$author)
  45.             //->orderBy('count(b.favoritedClients)', 'DESC')
  46.             ->setMaxResults($limit)
  47.             ->getQuery()
  48.             ->getResult()
  49.             ;
  50.     }
  51.     public function findAll(array $orderBy null): array
  52.     {
  53.         $resQb $this->createQueryBuilder('b');
  54.         if($orderBy != null){
  55.             foreach ($orderBy as $order){
  56.                 $resQb->addOrderBy('b.'.key($orderBy),$order);
  57.             }
  58.         }else{
  59.             $resQb->addOrderBy('b.createdAt''ASC');
  60.         }
  61.         return $resQb
  62.             ->getQuery()
  63.             ->getResult()
  64.             ;
  65.     }
  66.     public function save(Beat $entitybool $flush false): Beat
  67.     {
  68.         $this->getEntityManager()->persist($entity);
  69.         if ($flush) {
  70.             $this->getEntityManager()->flush();
  71.         }
  72.         return $entity;
  73.     }
  74.     public function remove(Beat $entitybool $flush false): void
  75.     {
  76.         $this->getEntityManager()->remove($entity);
  77.         if ($flush) {
  78.             $this->getEntityManager()->flush();
  79.         }
  80.     }
  81. //    /**
  82. //     * @return Instrumental[] Returns an array of Instrumental objects
  83. //     */
  84. //    public function findByExampleField($value): array
  85. //    {
  86. //        return $this->createQueryBuilder('i')
  87. //            ->andWhere('i.exampleField = :val')
  88. //            ->setParameter('val', $value)
  89. //            ->orderBy('i.id', 'ASC')
  90. //            ->setMaxResults(10)
  91. //            ->getQuery()
  92. //            ->getResult()
  93. //        ;
  94. //    }
  95. //    public function findOneBySomeField($value): ?Instrumental
  96. //    {
  97. //        return $this->createQueryBuilder('i')
  98. //            ->andWhere('i.exampleField = :val')
  99. //            ->setParameter('val', $value)
  100. //            ->getQuery()
  101. //            ->getOneOrNullResult()
  102. //        ;
  103. //    }
  104. }