/**
  * 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;
 }
예제 #3
0
 /**
  * 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;
 }
예제 #5
0
 /**
  * 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;
 }