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