class ComplexDataConstraint
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/ComplexDataConstraint.php \Drupal\Core\Validation\Plugin\Validation\Constraint\ComplexDataConstraint
- 10 core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/ComplexDataConstraint.php \Drupal\Core\Validation\Plugin\Validation\Constraint\ComplexDataConstraint
- 9 core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/ComplexDataConstraint.php \Drupal\Core\Validation\Plugin\Validation\Constraint\ComplexDataConstraint
- 8.9.x core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/ComplexDataConstraint.php \Drupal\Core\Validation\Plugin\Validation\Constraint\ComplexDataConstraint
Complex data constraint.
Validates properties of complex data structures.
Attributes
#[Constraint(id: 'ComplexData', label: new TranslatableMarkup('Complex data', [], [
'context' => 'Validation',
]))]
Hierarchy
- class \Drupal\Core\Validation\Plugin\Validation\Constraint\ComplexDataConstraint extends \Symfony\Component\Validator\Constraint
Expanded class hierarchy of ComplexDataConstraint
1 file declares its use of ComplexDataConstraint
- ConstraintFactoryTest.php in core/
tests/ Drupal/ KernelTests/ Core/ Validation/ ConstraintFactoryTest.php
File
-
core/
lib/ Drupal/ Core/ Validation/ Plugin/ Validation/ Constraint/ ComplexDataConstraint.php, line 15
Namespace
Drupal\Core\Validation\Plugin\Validation\ConstraintView source
class ComplexDataConstraint extends SymfonyConstraint {
/**
* An array of constraints for contained properties, keyed by property name.
*
* @var array
*/
public $properties;
public function __construct(mixed $options = NULL, ?array $properties = NULL, ?array $groups = NULL, mixed $payload = NULL, ...$otherProperties) {
// Allow skipping the 'properties' key in the options.
if (is_array($options)) {
if (!array_key_exists('properties', $options)) {
$options = [
'properties' => $options,
];
}
}
elseif ($properties === NULL && !empty($otherProperties)) {
$properties = $otherProperties;
}
parent::__construct($options, $groups, $payload);
$this->properties = $properties ?? $this->properties;
$constraint_manager = \Drupal::service('validation.constraint');
// Instantiate constraint objects for array definitions.
foreach ($this->properties as &$constraints) {
foreach ($constraints as $id => $options) {
if (!is_object($options)) {
$constraints[$id] = $constraint_manager->create($id, $options);
}
}
}
}
/**
* {@inheritdoc}
*/
public function getDefaultOption() : ?string {
return 'properties';
}
/**
* {@inheritdoc}
*/
public function getRequiredOptions() : array {
return [
'properties',
];
}
}
Members
| Title Sort descending | Modifiers | Object type | Summary |
|---|---|---|---|
| ComplexDataConstraint::$properties | public | property | An array of constraints for contained properties, keyed by property name. |
| ComplexDataConstraint::getDefaultOption | public | function | |
| ComplexDataConstraint::getRequiredOptions | public | function | |
| ComplexDataConstraint::__construct | public | function | #[HasNamedArguments] |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.