Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Field/FieldConfigBase.php \Drupal\Core\Field\FieldConfigBase::postCreate()
  2. 9 core/lib/Drupal/Core/Field/FieldConfigBase.php \Drupal\Core\Field\FieldConfigBase::postCreate()

Acts on a created entity before hooks are invoked.

Used after the entity is created, but before saving the entity and before any of the presave hooks are invoked.

See the Entity CRUD topic for more information.

Parameters

\Drupal\Core\Entity\EntityStorageInterface $storage: The entity storage object.

Overrides EntityBase::postCreate

See also

\Drupal\Core\Entity\EntityInterface::create()

File

core/lib/Drupal/Core/Field/FieldConfigBase.php, line 274

Class

FieldConfigBase
Base class for configurable field definitions.

Namespace

Drupal\Core\Field

Code

public function postCreate(EntityStorageInterface $storage) {
  parent::postCreate($storage);

  // If it was not present in the $values passed to create(), (e.g. for
  // programmatic creation), populate the denormalized field_type property
  // from the field storage, so that it gets saved in the config record.
  if (empty($this->field_type)) {
    $this->field_type = $this
      ->getFieldStorageDefinition()
      ->getType();
  }

  // Make sure all expected runtime settings are present.
  $default_settings = \Drupal::service('plugin.manager.field.field_type')
    ->getDefaultFieldSettings($this
    ->getType());

  // Filter out any unknown (unsupported) settings.
  $supported_settings = array_intersect_key($this
    ->getSettings(), $default_settings);
  $this
    ->set('settings', $supported_settings + $default_settings);
}