public FieldConfig::__construct(array $values, $entity_type = 'field_config')
Constructs a FieldConfig object.
In most cases, Field entities are created via FieldConfig::create($values), where $values is the same parameter as in this constructor.
Parameters
array $values: An array of field properties, keyed by property name. The storage associated with the field can be specified either with:
- field_storage: the FieldStorageConfigInterface object,
or by referring to an existing field storage in the current configuration with:
- field_name: The field name.
- entity_type: The entity type.
Additionally, a 'bundle' property is required to indicate the entity bundle to which the field is attached to. Other array elements will be used to set the corresponding properties on the class; see the class property documentation for details.
Overrides ConfigEntityBase::__construct
See also
File
- core/modules/field/src/Entity/FieldConfig.php, line 88
Class
- FieldConfig
- Defines the Field entity.
Namespace
Drupal\field\Entity
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public function __construct( array $values , $entity_type = 'field_config' ) { // Allow either an injected FieldStorageConfig object, or a field_name and // entity_type. if (isset( $values [ 'field_storage' ])) { if (! $values [ 'field_storage' ] instanceof FieldStorageConfigInterface) { throw new FieldException( 'Attempt to create a configurable field for a non-configurable field storage.' ); } $field_storage = $values [ 'field_storage' ]; $values [ 'field_name' ] = $field_storage ->getName(); $values [ 'entity_type' ] = $field_storage ->getTargetEntityTypeId(); // The internal property is fieldStorage, not field_storage. unset( $values [ 'field_storage' ]); $values [ 'fieldStorage' ] = $field_storage ; } else { if ( empty ( $values [ 'field_name' ])) { throw new FieldException( 'Attempt to create a field without a field_name.' ); } if ( empty ( $values [ 'entity_type' ])) { throw new FieldException( "Attempt to create a field '{$values['field_name']}' without an entity_type." ); } } // 'bundle' is required in either case. if ( empty ( $values [ 'bundle' ])) { throw new FieldException( "Attempt to create a field '{$values['field_name']}' without a bundle." ); } parent::__construct( $values , $entity_type ); } |
Please login to continue.