Drupal интерпретирует чекбокс как integer. Это вызывает некоторое непонимание при работе с полем через Drupal form API. Давайте рассмотрим пример объявления и чтения данных поля формы.
Объявление checkbox поля в вашей форме:
|
|
$form['MY_CHECKBOX'] = [ '#type' => 'checkbox', '#title' => $this->t('My custom checkbox'), '#default_value' => $previous_state, ]; |
Переменная $previous_state будет задавать статус чекбокса — включен или выключен, должна иметь значение 0 или 1.
Когда вы будете читать значения формы после отправки её данных, например в submit обработчике, то в зависимости от состояния чекбокса, вы получите 1 или 0 в качестве значения поля:
|
|
/** * {@inheritdoc} */ public function submit(array &$form, FormStateInterface $form_state) { $checkbox = $form_state->getValue('MY_CHECKBOX'); } |
В коде выше $checkbox примет значение 1 — если галочка включена, и 0 — если она выключена.
Drupal 9/10 Form API
Данная запись опубликована в 18.03.2024 14:08 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июль 8, 2023 г.
Пример кода для загрузки параграфов.
В данном примере будем загружать параграфы, связанные с entity commerce_product_variation (это сущность модуля Commerce).
Я привязал информацию по остаткам складов к вариациям в виде параграфов (тип - stocks). ...
Читать
Май 18, 2023 г.
Шпаргалка по настройке и проведению деплоймента для Drupal (начиная с 8й версии).
Деплоймент выполняется с использованием git, drush, composer и configuration management. На сервере должны выполняться команды в следующей последовательности:
...
Читать
Май 11, 2023 г.
См. основной материал для введения.
В имплементации блока требуется сформировать набор переменных и передать его в шаблон.
Шаблон был ранее объявлен в основном файле модуля, исходя из макета.
[crayon-6a519bd5dd61b818670699/]
В макете присутствуют ...
Читать
Июнь 17, 2024 г.
Поля, определенные модулями, не попадают в конфиг файлы сайта, и их не получается настроить привычным способом. В данном случае, требуется как то указать TMGMT модулю, что не нужно переводить поле view_mode.
Чтобы предотвратить проблему, можно ...
Читать