У меня довольно сложная форма, основанная на \Друпал\Ядро\Форма\Формбасе
со многими (частично вложенными) полями и хотите отправить полное содержимое по электронной почте при отправке.
В настоящее время у меня есть
публичная функция submitForm (массив и форма $, FormStateInterface $ form_state)
{
foreach ($form_state->getValues() as $key => $value) {
if (!empty($form[$key]['#title']) && $key != 'images') {
$values[$form[$key]['#title']->render()] = $value;
}
}
...
# позже я отформатирую массив $values как HTML-список
Это будет отображать поля только на верхнем уровне формы, но у меня есть поля внутри групп.
Есть ли хороший и чистый способ отобразить все значения поля? Или мне нужно перебирать и анализировать вручную по $форма
множество?
Могу ли я даже использовать рендерер для этого?
РЕДАКТИРОВАТЬ:
общедоступная функция buildForm (массив $ form, FormStateInterface $ form_state) {
// ...
$ форма ['компания'] = [
'#type' => 'контейнер',
];
$form['компания']['названиекомпании'] = [
'#тип' => 'текстовое поле',
'#title' => $this->t('Название компании'),
];
Подвести итог:
Как я могу перебрать все поля, в том числе те, которые находятся в контейнерах, и получить значения + метку (а не только техническое имя)? Есть ли хорошие помощники для этого или мне нужно делать все это вручную?