In Drupal 8, for the Comment entity, I want to validate an integer field (stored as field_nieuwe_waarde_value). In each comment posted for a node, it needs to be greater than the value for the previous comment.
The code doesn't give any errors, but the validation doesn't work.
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_alter().
*/
function waarde_validatie_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'comment_waarde_van_dit_voorwerp__form'){
$form['#validate'][] = 'start_drupal_waarde_voorwerp_form_validate';
}
}
/**
* Validation form for the waarde_voorwerp form.
*
* Check if the value is > then the last submitted value
*/
function start_drupal_waarde_voorwerp_form_validate($form, FormStateInterface &$form_state) {
// Look for the just submitted value.
$nieuwste_waarde = $form_state->getValue('field_nieuwe_waarde');
// Look for all early submitted values.
$alle_waarden = $form_state->getUserInput('field_nieuwe_waarde');
// Search for the last submitted value.
$laatste_bod = end($alle_waarden);
if ($nieuwste_waarde <= $laatste_waarde) {
$form_state->setErrorByName( t('Gelieve hoger dan'), $laatste_waarde, t('in te stellen'));
}
}