You are here

public function FieldConfigBase::addPropertyConstraints in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Field/FieldConfigBase.php \Drupal\Core\Field\FieldConfigBase::addPropertyConstraints()

Adds constraints for a given field item property.

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

// Limit the field item's value property to the range 0 through 10.
// e.g. $node->field_how_many->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 FieldConfigInterface::addConstraint() instead.

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

Note that constraints added via this method are not stored in configuration and as such need to be added at runtime using hook_entity_bundle_field_info_alter().

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.

Overrides FieldConfigInterface::addPropertyConstraints

See also

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

hook_entity_bundle_field_info_alter()

File

core/lib/Drupal/Core/Field/FieldConfigBase.php, line 574

Class

FieldConfigBase
Base class for configurable field definitions.

Namespace

Drupal\Core\Field

Code

public function addPropertyConstraints($name, array $constraints) {
  foreach ($constraints as $constraint_name => $options) {
    $this->propertyConstraints[$name][$constraint_name] = $options;
  }

  // Reset the field item definition so the next time it is instantiated it
  // will receive the new constraints.
  $this->itemDefinition = NULL;
  return $this;
}