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
- class \Drupal\Core\TypedData\DataDefinition implements \Drupal\Core\TypedData\DataDefinitionInterface, \Drupal\Core\TypedData\ArrayAccess uses \Drupal\Core\TypedData\TypedDataTrait
- class \Drupal\Core\TypedData\DataReferenceTargetDefinition extends \Drupal\Core\TypedData\DataDefinition
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\TypedDataView 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.