class 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()

5 files declare their use of DataReferenceTargetDefinition
EntityReferenceItem.php in core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php
EntityReferenceUuidItem.php in core/modules/jsonapi/tests/modules/jsonapi_test_field_type/src/Plugin/Field/FieldType/EntityReferenceUuidItem.php
FieldResolver.php in core/modules/jsonapi/src/Context/FieldResolver.php
ResourceTestBase.php in core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php
ResourceTypeRepository.php in core/modules/jsonapi/src/ResourceType/ResourceTypeRepository.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

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

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.