/** * {@inheritdoc} */ protected function getChoices($entityName, $withRelations, $withVirtualFields) { $choiceFields = []; $choiceRelations = []; $idFieldNames = $this->doctrineHelper->getEntityIdentifierFieldNames($entityName); foreach ($this->getEntityFields($entityName, $withRelations, $withVirtualFields) as $fieldName => $field) { $formConfig = $this->formConfigProvider->getConfig($entityName, $fieldName); if ($formConfig->is('is_enabled', false) || in_array($fieldName, $idFieldNames)) { // field is not enabled for displaying in forms // or field is entity identifier continue; } if (!isset($field['relation_type'])) { $choiceFields[$fieldName] = $field['label']; } elseif (!in_array($field['relation_type'], RelationType::$toManyRelations)) { // enable only mass update for *-to-one relations $choiceRelations[$fieldName] = $field['label']; } } if (empty($choiceRelations)) { return $choiceFields; } $choices = []; if (!empty($choiceFields)) { $choices[$this->translator->trans('oro.entity.form.entity_fields')] = $choiceFields; } $choices[$this->translator->trans('oro.entity.form.entity_related')] = $choiceRelations; return $choices; }
public function testGetEntityIdentifierFieldNamesNotManageableEntity() { $entity = $this->getMock('FooEntity'); $this->setExpectedException('Oro\\Bundle\\EntityBundle\\Exception\\NotManageableEntityException', sprintf('Entity class "%s" is not manageable', get_class($entity))); $this->registry->expects($this->once())->method('getManagerForClass')->with(get_class($entity))->will($this->returnValue(null)); $this->doctrineHelper->getEntityIdentifierFieldNames($entity); }