public function FieldItemBase::setValue

Implements TypedDataInterface::setValue().

Parameters

array $values: An array of property values.

Overrides TypedData::setValue

3 methods override FieldItemBase::setValue()
EntityReferenceItem::setValue in drupal/core/lib/Drupal/Core/Entity/Field/Type/EntityReferenceItem.php
Overrides FieldItemBase::setValue().
LanguageItem::setValue in drupal/core/lib/Drupal/Core/Entity/Field/Type/LanguageItem.php
Overrides FieldItemBase::setValue().
TaxonomyTermReferenceItem::setValue in drupal/core/modules/taxonomy/lib/Drupal/taxonomy/Type/TaxonomyTermReferenceItem.php
Overrides \Drupal\Core\Entity\Field\FieldItemBase::setValue().

File

drupal/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php, line 97
Definition of Drupal\Core\Entity\Field\FieldItemBase.

Class

FieldItemBase
An entity field item.

Namespace

Drupal\Core\Entity\Field

Code

public function setValue($values) {

  // Treat the values as property value of the first property, if no array is
  // given and we only have one property.
  if (!is_array($values) && count($this->properties) == 1) {
    $keys = array_keys($this->properties);
    $values = array(
      $keys[0] => $values,
    );
  }
  foreach ($this->properties as $name => $property) {
    $property
      ->setValue(isset($values[$name]) ? $values[$name] : NULL);
  }

  // @todo: Throw an exception for invalid values once conversion is
  // totally completed.
}