function entity_browser_entity_form_reference_form_validate in Entity Browser 8.2
Same name and namespace in other branches
- 8 modules/entity_form/entity_browser_entity_form.module \entity_browser_entity_form_reference_form_validate()
Validates the form for adding existing entities.
TODO see if we can get away without overriding entire IEF function.
Parameters
array $reference_form: The reference entity form.
\Drupal\Core\Form\FormStateInterface $form_state: The form state of the parent form.
See also
inline_entity_form_reference_form_validate()
1 string reference to 'entity_browser_entity_form_reference_form_validate'
- entity_browser_entity_form_inline_entity_form_reference_form_alter in modules/
entity_form/ entity_browser_entity_form.module - Implements hook_inline_entity_form_reference_form_alter().
File
- modules/
entity_form/ entity_browser_entity_form.module, line 92 - Hook implementations for entity_browser_entity_form.module.
Code
function entity_browser_entity_form_reference_form_validate(array &$reference_form, FormStateInterface $form_state) {
$form_values = NestedArray::getValue($form_state
->getValues(), $reference_form['#parents']);
if (empty($form_values['entity_browser']['entity_ids'])) {
// The entity_id element is required, the value is empty only if
// the form was cancelled.
return;
}
$ief_id = $reference_form['#ief_id'];
$labels = $reference_form['#ief_labels'];
$attach_entities = EntityBrowserElement::processEntityIds($form_values['entity_browser']['entity_ids']);
// Check if the entity is already referenced by the field.
if (!empty($attach_entities)) {
foreach ($attach_entities as $attach_entity) {
foreach ($form_state
->get([
'inline_entity_form',
$ief_id,
'entities',
]) as $key => $value) {
if ($value['entity']
->getEntityTypeId() == $attach_entity
->getEntityTypeId() && $value['entity']
->id() == $attach_entity
->id()) {
$form_state
->setError($reference_form['entity_browser'], t('The selected @label has already been added.', [
'@label' => $labels['singular'],
]));
$reference_form['entity_browser']['entity_ids']['#value'] = '';
}
}
}
}
}