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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Октябрь 25, 2023 г.
Попался мне UI баг, когда autocomplete слой с результатами поиска оказывался больше по ширине, чем input элемент, к которому он был прикреплен.
Не ясен был алгоритм, по которому вычислялась ширина слоя. В одних случаях это происходило корректно, ...
Читать
Июль 12, 2024 г.
Медиа entity удобна для использования, но если это единственное поле изображения в статье, то как вытащить URL картинки, например чтобы заполнить шаблоны metatag?
К примеру, в вашей статье есть медиа поле - field_image, и настройки разрешают подключать ...
Читать
Январь 9, 2024 г.
Функция file_create_url устаревает, начиная с версии 9.3, а в 10й версии она уже отсутствует.
Документация предлагает воспользоваться реализацией интерфейса \Drupal\Core\File\FileUrlGeneratorInterface, чтобы заместить устаревающую функцию в вашем ...
Читать
Июль 4, 2025 г.
В Drupal (начиная с версии 8 и выше, включая 10 и 11), чтобы получить код языка по умолчанию сайта (например, en, ru, fr), используйте следующий способ:
[crayon-69200912854a5004804481/]
Подробности запроса:
\Drupal::languageManager() — обращение ...
Читать