public function BaseFieldDefinition::getDefaultValue

public BaseFieldDefinition::getDefaultValue(FieldableEntityInterface $entity)

Returns the default value for the field in a newly created entity.

This method computes the runtime default value for a field in a given entity. To access the raw properties assigned to the field definition, ::getDefaultValueLiteral() or ::getDefaultValueCallback() should be used instead.

Parameters

\Drupal\Core\Entity\FieldableEntityInterface $entity: The entity for which the default value is generated.

Return value

array The default value for the field, as a numerically indexed array of items, each item being a property/value array (array() for no default value).

Overrides FieldDefinitionInterface::getDefaultValue

See also

FieldDefinitionInterface::getDefaultValueLiteral()

FieldDefinitionInterface::getDefaultValueCallback()

File

core/lib/Drupal/Core/Field/BaseFieldDefinition.php, line 454

Class

BaseFieldDefinition
A class for defining entity fields.

Namespace

Drupal\Core\Field

Code

public function getDefaultValue(FieldableEntityInterface $entity) {
  // Allow custom default values function.
  if ($callback = $this->getDefaultValueCallback()) {
    $value = call_user_func($callback, $entity, $this);
  }
  else {
    $value = $this->getDefaultValueLiteral();
  }
  // Normalize into the "array keyed by delta" format.
  if (isset($value) && !is_array($value)) {
    $properties = $this->getPropertyNames();
    $property = reset($properties);
    $value = array(
      array($property => $value),
    );
  }
  // Allow the field type to process default values.
  $field_item_list_class = $this->getClass();
  return $field_item_list_class::processDefaultValue($value, $entity, $this);
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Field!BaseFieldDefinition.php/function/BaseFieldDefinition::getDefaultValue/8.1.x