Получил код формы корректировки данных с помощью вот этого чудо-кода:
<?php
$entity = \Drupal::entityTypeManager()->getStorage('user')->create(array());
$form = $this->entityFormBuilder()->getForm($entity);
$txtBlock = \Drupal::service('renderer')->render($form);
?>
Далее вывожу его в блок. При нажатии на кнопку сохранить сайт пытается перейти на несуществующую страницу с безумным именем типа http://имя_сайта/form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM
Кто знает, куда копать?
Комментарии
В hook_form_alter отловил переменную формы $form. В $form[#action] как раз присутствует такая строка "form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM", куда отправляется пользователь после нажатия на кнопку "Сохранить", но мне нужно, чтобы выполнились функции в $form[#submit].
Как это сделать?
Подскажите, уже 3 дня бьюсь над этой проблемой
$form = \Drupal::formBuilder()->getForm('Drupal\user\RegisterForm', $entity);
...
Заменил
$form = $this->entityFormBuilder()->getForm($entity);
на
$form = \Drupal::formBuilder()->getForm('Drupal\user\RegisterForm', $entity);
Вылет в ошибку.
В примере намек на форму регистрации. Я ее получал так:
<?php$entity = \Drupal::entityTypeManager()->getStorage('user')->create(array());
$formObject = \Drupal::entityTypeManager()
->getFormObject('user', 'register')
->setEntity($entity);
$form = \Drupal::formBuilder()->getForm($formObject);
$txtBlock = \Drupal::service('renderer')->render($form);?>
Если дело в получении формы, то мб можно это перестроить, чтобы получить форму аккаунта?
> Вылет в ошибку.
Я написал начала с методом получения формы, надо use коненчо подключить и т.д. смотреть в отладке
Не понял)
Я сделал так:
<?php$entity = \Drupal::entityTypeManager()->getStorage('user')->create(array());
$formObject = \Drupal::entityTypeManager()
->getFormObject('user', 'default')
->setEntity($entity);
$form = \Drupal::formBuilder()->getForm($formObject);
//$form = $this->entityFormBuilder()->getForm($entity);
$txtBlock = \Drupal::service('renderer')->render($form);?>
Тот же самый эффект, что и с моим кодом. У меня подозрение, что дело не в этом куске кода...
Восьмёрка кидает на такие страницы, если в процессе обработки формы что-то пошло не так. Смотрите логи, причём скорее всего не журнал, а логи сервера.
Просмотрел логи php, mysql и apache: ошибок нет...