/** * Returns an array of fields. Fields can be both column fields and * association fields. * * @param ClassMetadataInfo $metadata * @return array $fields */ private function getFieldsFromMetadata(ClassMetadataInfo $metadata) { $fields = (array) $metadata->fieldMappings; // Remove the primary key field if it's not managed manually if (!$metadata->isIdentifierNatural()) { foreach ($metadata->identifier as $id) { if (array_key_exists($id, $fields)) { unset($fields[$id]); } } } return $fields; }
/** * Returns an array of fields. Fields can be both column fields and * association fields. * * @param ClassMetadataInfo $metadata * @return array $fields */ private function getFieldsFromMetadata(ClassMetadataInfo $metadata) { $fields = (array) $metadata->fieldNames; // Remove the primary key field if it's not managed manually if (!$metadata->isIdentifierNatural()) { $fields = array_diff($fields, $metadata->identifier); } foreach ($metadata->associationMappings as $fieldName => $relation) { if ($relation['type'] !== ClassMetadataInfo::ONE_TO_MANY) { $fields[] = $fieldName; } } return $fields; }
/** * Returns an array of fields. Fields can be both column fields and * association fields. * * @param ClassMetadataInfo $metadata * * @return array $fields */ private function getFieldsFromMetadata(ClassMetadataInfo $metadata) { $fields = (array) $metadata->fieldNames; if (!$metadata->isIdentifierNatural()) { $fields = array_diff($fields, $metadata->identifier); } $fieldsMapping = array(); foreach ($fields as $field) { $fieldsMapping[$field] = $metadata->getTypeOfField($field); } foreach ($metadata->associationMappings as $fieldName => $relation) { if ($relation['type'] !== ClassMetadataInfo::ONE_TO_MANY) { $fieldsMapping[$fieldName] = 'relation'; } } return $fieldsMapping; }
/** * Returns an array of fields. Fields can be both column fields and * association fields. * * @param ClassMetadataInfo $metadata * * @return array $fields */ private function getFieldsFromMetadata(ClassMetadataInfo $metadata) { $fields = $this->tplOptions['fields']; foreach ($fields as $field => $null) { if (in_array($field, $this->ignoreFeilds)) { unset($fields[$field]); } } foreach ($fields as &$field) { if (in_array($field['type'], ['date', 'datetime', 'dateinterval', 'string_array', 'integer_array'])) { $field['formType'] = $field['type']; } } if (!$metadata->isIdentifierNatural()) { foreach ($metadata->identifier as $id) { unset($fields[$id]); } } foreach ($metadata->associationMappings as $fieldName => $relation) { if ($relation['type'] !== ClassMetadataInfo::ONE_TO_MANY) { $label = preg_replace('/([A-Z])/', ' \\1', $fieldName); $label = trim($label); $label = strtolower($label); $label = ucfirst($label); $fields[$fieldName] = ['fieldName' => $fieldName, 'type' => $relation['targetEntity'], 'columnName' => $fieldName, 'length' => null, 'nullable' => '', 'label' => $label, 'columnNameSize' => strlen($fieldName), 'formType' => 'objectChoice']; } } foreach ($fields as &$field) { $entityBundle = '\\' . $this->tplOptions['entity_bundle_ns']; $type = $field['type']; if (strpos($type, 'Entity', 0)) { $type = '\\' . $type; } if (strpos($type, $entityBundle, 0) === 0) { $type = str_replace($entityBundle . '\\', '', $type); $type = '@var ' . $type; } $field['formTypeHint'] = "/* {$type} */"; } return $fields; }
/** * Returns an array of fields. Fields can be both column fields and * association fields. * * @param ClassMetadataInfo $metadata * @return array $fields */ protected function getFieldsFromMetadata(ClassMetadataInfo $metadata) { $fields = array_merge($metadata->fieldMappings, $metadata->associationMappings); // Remove the primary key field if it's not managed manually if (!$metadata->isIdentifierNatural()) { foreach ($metadata->identifier as $identifier) { unset($fields[$identifier]); } } foreach ($metadata->associationMappings as $fieldName => $relation) { $multiTypes = array(ClassMetadataInfo::ONE_TO_MANY, ClassMetadataInfo::MANY_TO_MANY); if (in_array($relation['type'], $multiTypes)) { $fields[$fieldName]['relatedType'] = 'many'; } else { $fields[$fieldName]['relatedType'] = 'single'; } $fields[$fieldName]['relatedEntityShortcut'] = $this->getEntityBundleShortcut($fields[$fieldName]['targetEntity']); } return $fields; }