createQueryBuilder('d'); $qb->where($qb->expr()->eq('d.user', ':user')); $qb->setParameter(':user', $user->get_id()); if (count($baseList) > 0) { $qb->andWhere('d.baseId IN (:bases)'); $qb->setParameter(':bases', $baseList); } $qb->orderBy('d.created', 'DESC'); return $qb->getQuery()->getResult(); } /** * Deletes demands for user on collection. * * @param \User_Adapter $user * @param array $baseList * * @return mixed */ public function deleteUserDemands(\User_Adapter $user, $baseList = []) { $qb = $this->createQueryBuilder('d'); $qb->delete('Alchemy\Phrasea\Model\Entities\RegistrationDemand', 'd'); $qb->where($qb->expr()->eq('d.user', ':user')); $qb->setParameter(':user', $user->get_id()); if (count($baseList) > 0) { $qb->andWhere('d.baseId IN (:bases)'); $qb->setParameter(':bases', $baseList); } return $qb->getQuery()->execute(); } /** * Deletes outdated demands. * * @param string $limit */ public function deleteDemandsOldestThan($limit = '-1 month') { $qb = $this->createQueryBuilder('d'); $qb->delete('Alchemy\Phrasea\Model\Entities\RegistrationDemand', 'd'); $qb->where($qb->expr()->lt('d.created', ':date')); $qb->setParameter(':date', new \DateTime($limit)); $qb->getQuery()->execute(); } /** * Deletes demands on collection. * * @param $baseId */ public function deleteDemandsOnCollection($baseId) { $qb = $this->createQueryBuilder('d'); $qb->delete('Alchemy\Phrasea\Model\Entities\RegistrationDemand', 'd'); $qb->where($qb->expr()->eq('d.baseId', ':base')); $qb->setParameter(':base', $baseId); $qb->getQuery()->execute(); } }