findExpirationPollOfDay( 0 ); } public function findSoonExpiredPolls() { return $this->findExpirationPollOfDay( 30 ); } public function findDeletableExpiredPolls() { return $this->findExpirationPollOfDay( - 30 ); } public function findExpirationPollOfDay( $count_of_days ) { $today = new \DateTime(); if ( $count_of_days > - 1 ) { $date_soon = $today->add( new \DateInterval( 'P' . $count_of_days . 'D' ) ); } else { $date_soon = $today->sub( new \DateInterval( 'P' . abs( $count_of_days ) . 'D' ) ); } return $this->createQueryBuilder( 'p' ) ->andWhere( 'p.expiracyDate < :date_soon' ) ->setParameter( 'date_soon', $date_soon ) ->orderBy( 'p.id', 'ASC' ) ->getQuery() ->getResult(); } /** * find all the polls of an owner * * @param $email * * @return int|mixed|string */ public function findAllByOwnerEmail( $email ) { return $this->createQueryBuilder( 'p' ) ->andWhere( 'p.owner.email = :email' ) ->setParameter( 'email', $email ) ->orderBy( 'p.id', 'DESC' ) ->getQuery() ->getResult(); } }