You are here

FieldInputValueNormalizerTrait.php in Drupal 10

Namespace

Drupal\Core\Field

File

core/lib/Drupal/Core/Field/FieldInputValueNormalizerTrait.php
View source
<?php

namespace Drupal\Core\Field;


/**
 * A trait used to assist in the normalization of raw input field values.
 *
 * @internal
 *
 * @see \Drupal\Core\Field\FieldConfigBase
 * @see \Drupal\Core\Field\BaseFieldDefinition
 */
trait FieldInputValueNormalizerTrait {

  /**
   * Ensure a field value is transformed into a format keyed by delta.
   *
   * @param mixed $value
   *   The raw field value to normalize.
   * @param string $main_property_name
   *   The main field property name.
   *
   * @return array
   *   A field value normalized into a format keyed by delta.
   */
  protected static function normalizeValue(&$value, $main_property_name) {
    if (!isset($value) || $value === NULL) {
      return [];
    }
    if (!is_array($value)) {
      if ($main_property_name === NULL) {
        throw new \InvalidArgumentException('A main property is required when normalizing scalar field values.');
      }
      return [
        [
          $main_property_name => $value,
        ],
      ];
    }
    if (!empty($value) && !is_numeric(array_keys($value)[0])) {
      return [
        0 => $value,
      ];
    }
    return $value;
  }

}

Traits

Namesort descending Description
FieldInputValueNormalizerTrait A trait used to assist in the normalization of raw input field values.