function unique_field_ajax_validate_unique in Unique field ajax 8
Same name and namespace in other branches
- 2.x unique_field_ajax.module \unique_field_ajax_validate_unique()
Ajax callback to validate the email field.
1 string reference to 'unique_field_ajax_validate_unique'
- unique_field_ajax_field_widget_form_alter in ./
unique_field_ajax.module - Attaching data to unique fields.
File
- ./
unique_field_ajax.module, line 204 - Unique value for cck fields check module.
Code
function unique_field_ajax_validate_unique($element, FormStateInterface $form_state, array $form) {
$entity = $form_state
->getFormObject()
->getEntity();
// If !isset langcode set it to 0.
$langcode = !empty($form_state
->getValues()['langcode'][0]['value']) && $form_state
->getValues()['langcode'][0]['value'] ? $form_state
->getValues()['langcode'][0]['value'] : '0';
$field_name = $element['#unique_field_ajax_settings']['field_name'];
$field_definition = $element['#unique_field_ajax_settings']['field_definition'];
$field_label = $field_definition
->label();
$value = $form_state
->getValue($field_name);
$entity_type = $entity
->getEntityTypeId();
// If field is not unique set error.
$valid = unique_field_ajax_is_unique($entity_type, $langcode, $field_name, $value[0]['value'], $entity
->bundle(), $element['#unique_field_ajax_settings']['per_lang'], $entity);
if (!$valid) {
$form_state
->setErrorByName($field_name, t('The field @field_label has to be unique.', array(
'@field_label' => $field_label,
)));
$form_state
->setRebuild();
}
}