Я создаю форму с API форм drupal.
Проверка хорошо работает для всех моих других полей.
Но я тоже начал пробовать работать с радиокнопками.
Неважно, если я нажму на опцию радио, проверка всегда возвращает «требуется цвет».
// Код метода сборки формы
$ форма ['дата рождения'] = [
'#тип' => 'дата',
'#title' => $this->t('Ваша дата рождения'),
'#date_date_format' => 'д-м-Г',
];
$ форма ['color_select'] = [
'#type' => 'радио',
'#title' => $this->t('Выберите цвет'),
'#варианты' => [
'синий' => $this->t('Синий'),
'белый' => $this->t('Белый'),
'черный' => $this->t('Черный'),
// 'другое' => $this->t('Другое'),
],
'#атрибуты' => [
'id' => 'color_select',
'имя' => 'field_color_select',
],
'#состояния' => [
'включено' => [
':input[name="field_custom_color"]' => ['value' => ''],
],
],
];
// Код метода валидатора формы
если ($form_state->getValue('дата рождения') == '') {
$form_state->setErrorByName('дата рождения', $this->t('Требуется дата рождения'));
}
если ($form_state->getValue('color_select') == '') {
$form_state->setErrorByName('color_select', $this->t('Требуется цвет'));
}
Я думал, что getValue(name) и setErrorByname(name) должны быть такими же, как $form[name] =[]; чтобы заставить его работать, но для поля переключателей это не так.