Как я могу обработать форму узла из пользовательского обработчика отправки?
У меня есть вариант использования, когда у меня есть пользовательская кнопка "Отправить" в форме редактирования узла, которая переводит пользователя на другую страницу для другого редактирования.
Если пользователь внес некоторые изменения в узел, например изменил заголовок, Мне нужно сохранить текущий узел , прежде чем перенаправлять их на новую страницу (вместе с некоторыми другими сгенерированными идентификаторами).
Клянусь жизнью, я не могу понять, как я могу сохранить изменения в узле в моей пользовательской отправке обработчик.
Я пробовал использовать $formState->prepareCallback('::submitform())
, но, похоже, это не делает того, что я ожидал от обработки формы.
Кто-нибудь делал это раньше или у кого-нибудь были хорошие идеи?
1 answers
Как правило, я находил ответ через 10 минут после публикации!
Для кого-либо другого в вашем пользовательском обработчике отправки получите объект формы из состояния формы.
$formObj = $formState->getFormObject();
Затем вы можете вызвать submitForm()
для объекта формы и передать переменные состояния формы и формы.
$formObj->submitForm($form, $formState);
Затем, наконец, просто запустите функцию save()
на объекте.
$formObj->save($form, $formState);