- Issue created by @uv516
Drupal 11.2.
File: "unique_content_field_validation.module"
In function "unique_content_field_validation_validate_unique", app. line 248:
$form_value = $form_state->getValue($field_name) ?? [];
foreach ($form_value as $key => $values) {
if (is_numeric($key)) {
foreach ($values as $key_value => $value) {
if (in_array($key_value, UniqueContentFieldValidationInterface::UNIQUE_CONTENT_FIELD_VALIDATION_VALID_KEY_VALUES)) {
$items[$key] = $value;
}
}
}
}
The value "$values" is not always an array, but can be a string.
Therefore it makes a warning for:
foreach ($values as $key_value => $value) {
...if $values is not an array.
A solution could be:
$form_value = $form_state->getValue($field_name) ?? [];
foreach ($form_value as $key => $values) {
- if (is_numeric($key)) {
+ if (is_numeric($key) && is_array($values)) {
foreach ($values as $key_value => $value) {
if (in_array($key_value, UniqueContentFieldValidationInterface::UNIQUE_CONTENT_FIELD_VALIDATION_VALID_KEY_VALUES)) {
$items[$key] = $value;
}
}
}
}
Perhaps it is important to set $tiems[$key]? - I don't know?
Active
2.0
Code