function BaseFieldDefinition::addPropertyConstraints

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Field/BaseFieldDefinition.php \Drupal\Core\Field\BaseFieldDefinition::addPropertyConstraints()
  2. 8.9.x core/lib/Drupal/Core/Field/BaseFieldDefinition.php \Drupal\Core\Field\BaseFieldDefinition::addPropertyConstraints()
  3. 10 core/lib/Drupal/Core/Field/BaseFieldDefinition.php \Drupal\Core\Field\BaseFieldDefinition::addPropertyConstraints()

Adds constraints for a given field item property.

Adds a constraint to a property of a base field item. e.g.

// Limit the field item's value property to the range 0 through 10.
// e.g. $node->size->value.
$field->addPropertyConstraints('value', [
    'Range' => [
        'min' => 0,
        'max' => 10,
    ],
]);

If you want to add a validation constraint that applies to the \Drupal\Core\Field\FieldItemList, use BaseFieldDefinition::addConstraint() instead.

Note: passing a new set of options for an existing property constraint will overwrite with the new options.

Parameters

string $name: The name of the property to set constraints for.

array $constraints: The constraints to set.

Return value

static The object itself for chaining.

See also

\Drupal\Core\Field\BaseFieldDefinition::addConstraint()

File

core/lib/Drupal/Core/Field/BaseFieldDefinition.php, line 345

Class

BaseFieldDefinition
A class for defining entity fields.

Namespace

Drupal\Core\Field

Code

public function addPropertyConstraints($name, array $constraints) {
    $item_constraints = $this->getItemDefinition()
        ->getConstraint('ComplexData') ?: [];
    if (isset($item_constraints[$name])) {
        // Add the new property constraints, overwriting as required.
        $item_constraints[$name] = $constraints + $item_constraints[$name];
    }
    else {
        $item_constraints[$name] = $constraints;
    }
    $this->getItemDefinition()
        ->addConstraint('ComplexData', $item_constraints);
    return $this;
}

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