You are here

public function DataReferenceBase::setValue in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/TypedData/DataReferenceBase.php \Drupal\Core\TypedData\DataReferenceBase::setValue()
  2. 10 core/lib/Drupal/Core/TypedData/DataReferenceBase.php \Drupal\Core\TypedData\DataReferenceBase::setValue()

Sets the data value.

Parameters

mixed|null $value: The value to set in the format as documented for the data type or NULL to unset the data value.

bool $notify: (optional) Whether to notify the parent object of the change. Defaults to TRUE. If a property is updated from a parent object, set it to FALSE to avoid being notified again.

Throws

\InvalidArgumentException If the value input is inappropriate.

\Drupal\Core\TypedData\Exception\ReadOnlyException If the data is read-only.

Overrides TypedData::setValue

1 method overrides DataReferenceBase::setValue()
EntityReference::setValue in core/lib/Drupal/Core/Entity/Plugin/DataType/EntityReference.php
Sets the data value.

File

core/lib/Drupal/Core/TypedData/DataReferenceBase.php, line 45

Class

DataReferenceBase
Base class for typed data references.

Namespace

Drupal\Core\TypedData

Code

public function setValue($value, $notify = TRUE) {
  $this->target = $this
    ->getTypedDataManager()
    ->create($this->definition
    ->getTargetDefinition(), $value);

  // Notify the parent of any changes.
  if ($notify && isset($this->parent)) {
    $this->parent
      ->onChange($this->name);
  }
}