В чем разница между $ form ['# submit']
и $ form ['# after_build']
?
В API-документах это довольно хорошо изложено. $form['#submit']
добавит массив обработчиков отправки в вашу форму: т.е. когда кто-то нажмет кнопку "Отправить", будет вызвана функция в массиве. Они будут называться после отправки.
Обычно вы хотите использовать это свойство при вызове hook_form_alter()
для добавления еще одной функции отправки в форму, которую вы не создавали сами, как если бы вы сами создавали форму в коде. , вы также создаете обработчик отправки по умолчанию.
Здесь документы FAPI на #submit
.
$form['#after_build']
аналогичен тому, что для вызова требуется массив функций, но они будут вызываться после построения формы для отображения. Это можно использовать, если у вас есть значение по умолчанию или существующее в элементе формы, и вы хотите проверить статус чего-либо с этим значением перед отправкой . См. документы FAPI для хорошего примера проверки состояния чего-либо перед отправкой, после того как форма построена для отображения.
Таким образом, функции $form['#submit']
будут вызываться при отправке, а функции $form['#after_build']
будут вызываться при отображении форма.