public function FieldConfigBase::addPropertyConstraints

public FieldConfigBase::addPropertyConstraints($name, array $constraints)

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 558

Class

FieldConfigBase
Base class for configurable field definitions.

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;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Field!FieldConfigBase.php/function/FieldConfigBase::addPropertyConstraints/8.1.x