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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Февраль 14, 2024 г.
Пример того, как можно дополнить результаты views в Drupal 9/10.
Задача - вывести для статьи блок со связанными публикациями. В начале нужно было просто выводить последние статьи того же типа, а потом у заказчика возникло желание переопределять выдачу, ...
Читать
Май 2, 2024 г.
Пара примеров о том, как вытащить нужную инфу из параграфов, используя токены. Обычно это нужно для генерации meta заголовков страницы.
У вас есть node, в которой вы создали поле field_myfield с entity_reference: paragrpahs.
Самое простое, ...
Читать
Октябрь 18, 2023 г.
Сущность возвращает язык в контексте выбранного языка, но иногда нужно получить оригинальный язык node или другой entity.
Вот так выглядит запрос в контексте:
[crayon-69549ba0c56e3438624240/]
А так можно получить код языка оригинальной версии ...
Читать
Февраль 17, 2024 г.
Вы создали форму с полем типа file, и хотите сохранять файл как сущность друпала при отправке данных формы.
[crayon-69549ba0c5a23446364544/]
Обычно объявления форм в Drupal 8+ размещаются в виде расширений класса FormBase в каталоге модуля /scr/Form/*. ...
Читать