elementTypeRepository = $elementTypeRepository; $this->projectRepository = $projectRepository; } public function getSaveFields(int $projectId): array { $project = $this->projectRepository->getSaveField($projectId); $fields = []; if (!$project) { return ['draft' => true, 'fields' => []]; } $i = 0; foreach ($project->getElementTypes() as $elemType) { $find = false; foreach ($elemType->getElements() as $elem) { foreach ($elem->getFields() as $field) { if ($field->getElementTypeFieldId()) { $fields[$i][] = $this->elementTypeRepository->findByElementTypeField($field->getElementTypeFieldId()); // TODO : Use Provider ! $find = true; } } } if ($find) { $fields[$i] = $this->removeNonUniqueData($fields[$i], 'id'); } else { $fields[$i] = []; } ++$i; } return ['fields' => $fields]; } }