entityManager = $entityManager; $this->container = $container; } public function list(int $projectId): array { $connection = $this->container->get('doctrine.dbal.pim_connection'); $qb = $connection->createQueryBuilder(); $elements = $this->entityManager ->createQueryBuilder() ->select('e.id, e.elementId') ->from(Element::class, 'e') ->join('e.elementType', 'et') ->where('et.project = :projectId') ->setParameter('projectId', $projectId) ->getQuery() ->getArrayResult() ; $array_id_element = []; foreach ($elements as $element) { $array_id_element[] = $element['elementId']; } $qb->select('e.id, e.name, e.element_type_id') ->from('element', 'e') ->where($qb->expr()->in('e.id', $array_id_element)); $elementsPim = $qb->execute()->fetchAll(); $elementsPimArrayById = []; foreach ($elementsPim as $elementPim) { $elementsPimArrayById[$elementPim['id']] = $elementPim; } $newElements = []; foreach ($elements as $element) { $element['name'] = $elementsPimArrayById[$element['elementId']]['name']; $newElements[] = $element; } return $newElements; } }