public function testAssociationMapping() { $field = new FieldDescription; $field->setAssociationMapping(array( 'type' => 'integer', 'fieldName' => 'position' )); $this->assertEquals('integer', $field->getType()); $this->assertEquals('integer', $field->getMappingType()); $this->assertEquals('position', $field->getFieldName()); // cannot overwrite defined definition $field->setAssociationMapping(array( 'type' => 'overwrite?', 'fieldName' => 'overwritten' )); $this->assertEquals('integer', $field->getType()); $this->assertEquals('integer', $field->getMappingType()); $this->assertEquals('overwritten', $field->getFieldName()); $field->setMappingType('string'); $this->assertEquals('string', $field->getMappingType()); $this->assertEquals('integer', $field->getType()); }
/** * Returns a new FieldDescription * * @abstract * @return \Sonata\AdminBundle\Admin\ORM\FieldDescription */ public function getNewFieldDescriptionInstance($class, $name, array $options = array()) { $metadata = $this->getMetadata($class); $fieldDescription = new FieldDescription(); $fieldDescription->setName($name); $fieldDescription->setOptions($options); if (isset($metadata->associationMappings[$name])) { $fieldDescription->setAssociationMapping($metadata->associationMappings[$name]); } if (isset($metadata->fieldMappings[$name])) { $fieldDescription->setFieldMapping($metadata->fieldMappings[$name]); } return $fieldDescription; }
/** * Returns a new FieldDescription * * @throws \RunTimeException * @param $class * @param $name * @param array $options * @return \Sonata\AdminBundle\Admin\ORM\FieldDescription */ public function getNewFieldDescriptionInstance($class, $name, array $options = array()) { if (!is_string($name)) { throw new \RunTimeException('The name argument must be a string'); } $metadata = $this->getMetadata($class); $fieldDescription = new FieldDescription(); $fieldDescription->setName($name); $fieldDescription->setOptions($options); if (isset($metadata->associationMappings[$name])) { $fieldDescription->setAssociationMapping($metadata->associationMappings[$name]); } if (isset($metadata->fieldMappings[$name])) { $fieldDescription->setFieldMapping($metadata->fieldMappings[$name]); } return $fieldDescription; }