src/Repository/BlogRepository.php line 67
<?phpnamespace App\Repository;use App\Entity\Blog;use App\Entity\VehicleManufacturer;use App\Entity\VehicleModel;use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;use Doctrine\Persistence\ManagerRegistry;/*** @extends ServiceEntityRepository<Blog>** @method Blog|null find($id, $lockMode = null, $lockVersion = null)* @method Blog|null findOneBy(array $criteria, array $orderBy = null)* @method Blog[] findAll()* @method Blog[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)*/class BlogRepository extends ServiceEntityRepository{public function __construct(ManagerRegistry $registry){parent::__construct($registry, Blog::class);}/*** @return Blog[]*/public function findTop(): array{return $this->createQueryBuilder('b')->andWhere('b.visible != false')->andWhere('b.top = true')->orderBy('b.createAt', 'DESC')->getQuery()->getResult();}/*** @param int $offset* @param int $limit* @return Blog[]*/public function findOffsetLimit(int $offset, int $limit): array{return $this->createQueryBuilder('b')->where('b.visible = true')->andWhere('b.createAt <= :dateCreated')->setParameter('dateCreated', new \DateTime())->orderBy('b.createAt', 'DESC')->setFirstResult($offset)->setMaxResults($limit)->getQuery()->getResult();}/*** @param VehicleManufacturer|null $vehicleManufacturer* @param VehicleModel|null $vehicleModel* @param int $limit* @return Blog[]*/public function findRandActive(VehicleManufacturer $vehicleManufacturer = null,VehicleModel $vehicleModel = null , int $id, int $limit): array{$return = $this->createQueryBuilder('b')->andWhere('b.visible != false')->andWhere('b.createAt >= :date')->andWhere('b.id != :id')->andWhere('b.createAt <= :dateCreated')->setParameter('dateCreated', new \DateTime())->setParameter('id', $id)->setParameter('date', new \DateTime('-5 year'));if($vehicleManufacturer) {$return->andWhere('b.vehicleManufacturer = :manufacturer')->setParameter('manufacturer', $vehicleManufacturer);}if($vehicleModel) {$return->andWhere('b.vehicleModel = :model')->setParameter('model', $vehicleModel);}return $return->orderBy('RAND()')->setMaxResults($limit)->getQuery()->getResult();}/*** @return Blog[] Returns an array of Dealer objects*/public function findHomepage(): array{return $this->createQueryBuilder('b')->andWhere('b.visible = true')->andWhere('b.visibleHomepage = true')->andWhere('b.createAt <= :date')->setParameter('date', new \DateTime())->orderBy('b.createAt', 'DESC')->setMaxResults(10)->getQuery()->getResult();}/*** @return Blog[] Returns an array of Dealer objects*/public function findNewActive(int $limit): array{return $this->createQueryBuilder('b')->andWhere('b.visible = true')->andWhere('b.visibleHomepage = true')->andWhere('b.createAt <= :date')->setParameter('date', new \DateTime())->orderBy('b.createAt', 'DESC')->setMaxResults($limit)->getQuery()->getResult();}public function findOneVisibleUrl(string $url): ?Blog{return $this->createQueryBuilder('b')->andWhere('b.visible = true')->andWhere('b.createAt <= :date')->setParameter('date', new \DateTime())->andWhere('b.url = :url')->setParameter('url', $url)->getQuery()->getOneOrNullResult();}/*** @param array<string> $parameters* @return Blog[] Returns an array of Dealer objects*/public function findQuery(array $parameters): array{$return = $this->createQueryBuilder('b') ;if(isset($parameters['urlKind']) && $parameters['urlKind'] != '') {$return->leftJoin('b.kinds', 'bks')->andWhere('bks.url = :urlKind')->setParameter('urlKind', $parameters['urlKind'] );}if(isset($parameters['name']) && $parameters['name'] != '') {$return->andWhere('b.name LIKE :name')->setParameter('name', '%'.$parameters['name'].'%');}if(isset($parameters['visible']) && $parameters['visible'] != '') {$return->andWhere('b.visible = true')->andWhere('b.createAt <= :date')->setParameter('date', new \DateTime());}return $return->orderBy('b.createAt', 'DESC')->getQuery()->getResult();}/*** @param array<string> $parameters* @return Blog[]*/public function findQueryWithManufacturer(array $parameters): array{$return = $this->createQueryBuilder('b');if(isset($parameters['urlKind']) && $parameters['urlKind'] != '') {$return->leftJoin('b.kinds', 'bks')->andWhere('bks.url = :urlKind')->setParameter('urlKind', $parameters['urlKind']);}if(isset($parameters['manufacturer']) && $parameters['manufacturer'] != '') {$return->andWhere('b.vehicleManufacturer = :manufacturer')->setParameter('manufacturer', $parameters['manufacturer']);}if(isset($parameters['visible']) && $parameters['visible'] != '') {$return->andWhere('b.visible = true')->andWhere('b.createAt <= :date')->setParameter('date', new \DateTime());}return $return->orderBy('b.createAt', 'DESC')->getQuery()->getResult();}/*** @param array<string> $parameters* @return Blog[]*/public function findQueryWithManufacturerAndModel(array $parameters): array{$return = $this->createQueryBuilder('b');if(isset($parameters['urlKind']) && $parameters['urlKind'] != '') {$return->leftJoin('b.kinds', 'bks')->andWhere('bks.url = :urlKind')->setParameter('urlKind', $parameters['urlKind']);}if(isset($parameters['manufacturer']) && $parameters['manufacturer'] != '') {$return->andWhere('b.vehicleManufacturer = :manufacturer')->setParameter('manufacturer', $parameters['manufacturer']);}if(isset($parameters['model']) && $parameters['model'] != '') {$return->andWhere('b.vehicleModel = :model')->setParameter('model', $parameters['model']);}if(isset($parameters['visible']) && $parameters['visible'] != '') {$return->andWhere('b.visible = true')->andWhere('b.createAt <= :date')->setParameter('date', new \DateTime());}return $return->orderBy('b.createAt', 'DESC')->getQuery()->getResult();}public function save(Blog $entity, bool $flush = false): void{$this->getEntityManager()->persist($entity);if ($flush) {$this->getEntityManager()->flush();}}public function remove(Blog $entity, bool $flush = false): void{$this->getEntityManager()->remove($entity);if ($flush) {$this->getEntityManager()->flush();}}}