entityManager = $entityManager; } /** * @param array $groupProject [description] * * @return array [description] */ public function saveMultiple(array $groupProjects) { try { foreach ($groupProjects as $groupProject) { $this->entityManager->persist($groupProject); } $this->entityManager->flush(); return true; } catch (Exception $e) { return $e; } } /** * @param array $groupProject [description] * * @return array [description] */ public function removeMultiple($groupProjects) { try { foreach ($groupProjects as $groupProject) { $this->entityManager->remove($groupProject); } $this->entityManager->flush(); return true; } catch (Exception $e) { return $e; } } /** * @param int $projectId [description] * @param array $groupIds [description] * * @return array [description] */ public function findByProjectAndGroups(int $projectId, array $groupIds) { $qb = $this->entityManager->createQueryBuilder(); return $qb->select('gp') ->from(GroupProject::class, 'gp') ->innerJoin('gp.project', 'p') ->where('p.id = :projectId') ->andWhere($qb->expr()->in('gp.group', $groupIds)) ->setParameter('projectId', $projectId) ->getQuery() ->getResult(); } }