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

3 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
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

Namesort descending Modifiers Type Description Overrides
DataDefinition::$definition protected property The array holding values for all definition keys.
DataDefinition::addConstraint public function Adds a validation constraint. Overrides DataDefinitionInterface::addConstraint
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::getClass public function Returns the class used for creating the typed data object. Overrides DataDefinitionInterface::getClass 1
DataDefinition::getConstraint public function Returns a validation constraint. Overrides DataDefinitionInterface::getConstraint
DataDefinition::getDataType public function Returns the data type of the data. Overrides DataDefinitionInterface::getDataType 2
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::getSetting public function Returns the value of a given setting. Overrides DataDefinitionInterface::getSetting 2
DataDefinition::getSettings public function Returns the array of settings, as required by the used class. Overrides DataDefinitionInterface::getSettings 2
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
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::isRequired public function Determines whether a data value is required. Overrides DataDefinitionInterface::isRequired
DataDefinition::offsetExists public function
DataDefinition::offsetGet public function
DataDefinition::offsetSet public function
DataDefinition::offsetUnset public function
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 Returns an array of validation constraints. 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. 1
TypedDataTrait::setTypedDataManager public function Sets the typed data manager. 1