Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/TypedData/DataReferenceTargetDefinition.php \Drupal\Core\TypedData\DataReferenceTargetDefinition
  2. 9 core/lib/Drupal/Core/TypedData/DataReferenceTargetDefinition.php \Drupal\Core\TypedData\DataReferenceTargetDefinition

A typed data definition class for the entity reference target_id property.

The target_id property differs from other data definitions in that it is required at the storage level, but not at the validation level. This is because its value can be set just-in-time using the preSave() method.

Validation for the target_id property is provided by the 'ValidReference' validation constraint.

Hierarchy

Expanded class hierarchy of DataReferenceTargetDefinition

See also

\Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem::preSave()

2 files declare their use of DataReferenceTargetDefinition
DeprecatedReferenceItem.php in core/modules/jsonapi/tests/modules/jsonapi_test_reference_types/src/Plugin/Field/FieldType/DeprecatedReferenceItem.php
FieldResolver.php in core/modules/jsonapi/src/Context/FieldResolver.php

File

core/lib/Drupal/Core/TypedData/DataReferenceTargetDefinition.php, line 17

Namespace

Drupal\Core\TypedData
View source
class DataReferenceTargetDefinition extends DataDefinition {

  /**
   * {@inheritdoc}
   */
  public function getConstraints() {
    $constraints = parent::getConstraints();

    // If this data definition is marked as required for the sake of schema
    // definitions, we don't enforce it using the NotNull constraint. Instead
    // \Drupal\Core\Field\EntityReferenceItem is validated by the
    // 'ValidReference' constraint that operates at the field-item level. This
    // constraint takes into consideration that the target_id property can
    // be derived from the entity property.
    unset($constraints['NotNull']);
    return $constraints;
  }

}

Members

Name Modifiers Type Descriptionsort descending Overrides
DataDefinition::offsetExists public function
DataDefinition::offsetGet public function
DataDefinition::offsetSet public function
DataDefinition::offsetUnset public function
DataDefinition::__sleep public function 2
DataDefinition::addConstraint public function Adds a validation constraint. Overrides DataDefinitionInterface::addConstraint
DataDefinition::__construct public function Constructs a new data definition object. 1
DataDefinition::createFromDataType public static function Creates a new data definition object. Overrides DataDefinitionInterface::createFromDataType 5
DataDefinition::create public static function Creates a new data definition. 5
DataDefinition::isRequired public function Determines whether a data value is required. Overrides DataDefinitionInterface::isRequired
DataDefinition::isReadOnly public function Determines whether the data is read-only. Overrides DataDefinitionInterface::isReadOnly
DataDefinition::isComputed public function Determines whether the data value is computed. Overrides DataDefinitionInterface::isComputed
DataDefinition::isInternal public function Determines whether the data value is internal. Overrides DataDefinitionInterface::isInternal 1
TypedDataTrait::getTypedDataManager public function Gets the typed data manager. 1
DataDefinition::getDescription public function Returns a human readable description. Overrides DataDefinitionInterface::getDescription
DataDefinition::getLabel public function Returns a human readable label. Overrides DataDefinitionInterface::getLabel 1
DataDefinition::getConstraint public function Returns a validation constraint. Overrides DataDefinitionInterface::getConstraint
DataDefinition::toArray public function Returns all definition values as array.
DataReferenceTargetDefinition::getConstraints public function Returns an array of validation constraints. Overrides DataDefinition::getConstraints
DataDefinition::getSettings public function Returns the array of settings, as required by the used class. Overrides DataDefinitionInterface::getSettings 2
DataDefinition::getClass public function Returns the class used for creating the typed data object. Overrides DataDefinitionInterface::getClass 1
DataDefinition::getDataType public function Returns the data type of the data. Overrides DataDefinitionInterface::getDataType 2
DataDefinition::getSetting public function Returns the value of a given setting. Overrides DataDefinitionInterface::getSetting 2
DataDefinition::isList public function Returns whether the data is multi-valued, i.e. a list of data items. Overrides DataDefinitionInterface::isList
DataDefinition::setSetting public function Sets a definition setting. 2
DataDefinition::setConstraints public function Sets an array of validation constraints.
DataDefinition::setSettings public function Sets the array of settings, as required by the used class. 2
DataDefinition::setClass public function Sets the class used for creating the typed data object.
DataDefinition::setDataType public function Sets the data type. 1
DataDefinition::setDescription public function Sets the human-readable description.
DataDefinition::setLabel public function Sets the human-readable label.
TypedDataTrait::setTypedDataManager public function Sets the typed data manager. 1
DataDefinition::setInternal public function Sets the whether the data value should be internal.
DataDefinition::setComputed public function Sets whether the data is computed.
DataDefinition::setReadOnly public function Sets whether the data is read-only.
DataDefinition::setRequired public function Sets whether the data is required.
DataDefinition::$definition protected property The array holding values for all definition keys.
TypedDataTrait::$typedDataManager protected property The typed data manager used for creating the data types.