Как внедрить веб-форму для обновления существующей отправки
Я пытаюсь отобразить веб-форму через контроллер модуля. Отображение веб-формы работает так, как должно, но мне нужно обновить существующие данные отправки, и вместо обновления существующей отправки создается новая.
Код, который я использую, выглядит так:
public function edit()
{
$submissionId = \Drupal::request()->get('sid');
$webform = Webform::load('eventsignup');
$webformSubmission = WebformSubmission::load($submissionId);
$webform = $webform->getSubmissionForm([
'data' => $webformSubmission->getData()
]);
$build['submissionForm'] = $webform;
return $build;
}
Я попытался изменить его, выполнив операцию "редактировать" и установив "sid", но это приводит к ошибке дубликата ключа:
public function edit()
{
$submissionId = \Drupal::request()->get('sid');
$webform = Webform::load('eventsignup');
$webformSubmission = WebformSubmission::load($submissionId);
$webform = $webform->getSubmissionForm([
'sid' => $submissionId,
'data' => $webformSubmission->getData()
], 'edit');
$build['submissionForm'] = $webform;
return $build;
}
Что я делаю не так?
Спасибо за ваше помогите!
1
1 answers
Существующие отправленные веб-формы являются сущностями, и вы можете использовать службу конструктора форм сущностей для создания формы:
// load the webform submission entity
$webformSubmission = WebformSubmission::load($submissionId);
// build a form for the entity
$webform = \Drupal::service('entity.form_builder')->getForm($webformSubmission, 'edit');
1
Author: 4k4, 2018-07-17 14:05:18