FieldInputValueNormalizerTrait.php

Same filename in other branches
  1. 8.9.x core/lib/Drupal/Core/Field/FieldInputValueNormalizerTrait.php
  2. 10 core/lib/Drupal/Core/Field/FieldInputValueNormalizerTrait.php
  3. 11.x core/lib/Drupal/Core/Field/FieldInputValueNormalizerTrait.php

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

Title Deprecated Summary
FieldInputValueNormalizerTrait A trait used to assist in the normalization of raw input field values.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.