Как я могу обработать форму узла из пользовательского обработчика отправки?


У меня есть вариант использования, когда у меня есть пользовательская кнопка "Отправить" в форме редактирования узла, которая переводит пользователя на другую страницу для другого редактирования.

Если пользователь внес некоторые изменения в узел, например изменил заголовок, Мне нужно сохранить текущий узел , прежде чем перенаправлять их на новую страницу (вместе с некоторыми другими сгенерированными идентификаторами).

Клянусь жизнью, я не могу понять, как я могу сохранить изменения в узле в моей пользовательской отправке обработчик.
Я пробовал использовать $formState->prepareCallback('::submitform()), но, похоже, это не делает того, что я ожидал от обработки формы.

Кто-нибудь делал это раньше или у кого-нибудь были хорошие идеи?

Author: leymannx, 2019-01-21

1 answers

Как правило, я находил ответ через 10 минут после публикации!

Для кого-либо другого в вашем пользовательском обработчике отправки получите объект формы из состояния формы.

$formObj = $formState->getFormObject();

Затем вы можете вызвать submitForm() для объекта формы и передать переменные состояния формы и формы.

$formObj->submitForm($form, $formState);

Затем, наконец, просто запустите функцию save() на объекте.

$formObj->save($form, $formState);
 2
Author: Jimmyb_1991, 2019-01-21 17:11:36