#дерево
Создает иерархию значений в обработчике отправки формы.
Сравнивать:
общедоступная функция buildForm (массив $ form, FormStateInterface $ form_state) {
$ форма ['контейнер'] = [
'#type' => 'контейнер',
];
$form['контейнер']['some_value'] = [
'#тип' = >'текстовое поле',
];
// Кнопки отправки и т. д. не показаны
вернуть $ форму;
}
Это создаст элемент формы. После нажатия кнопки «Отправить» ключ элемента формы используется для возврата значения. в данном случае ключ некоторое_значение
, что означает, что обработчики проверки и отправки могут получить отправленное значение с помощью form_state->getValue('some_value')
.
Теперь добавьте #дерево
к контейнеру:
общедоступная функция buildForm (массив $ form, FormStateInterface $ form_state) {
$ форма ['контейнер'] = [
'#type' => 'контейнер',
'#дерево' => ИСТИНА,
];
$form['контейнер']['some_value'] = [
'#тип' = >'текстовое поле',
];
// Кнопки отправки и т. д. не показаны
вернуть $ форму;
}
С этим изменением $form_state->getValue('some_value')
ничего не вернет, так как значение теперь является частью элемента-контейнера (элемент #дерево
элемент) и должен быть получен относительно этого:
// Возвращает массив с одним ключом, 'some_value', который содержит
// переданное значение.
$form_state->getValue('контейнер')
// Возвращает отправленное значение:
$form_state->getValue(['контейнер', 'some_value'])