
Є проблема з багаторазовим виводом однієї форми на одній сторінці і обробляти результат по кожній з них. Ви можете спробувати зробити це, але submitForm буде визвана для усіх форм бо вони мають однаковий ID.
За замовчуваннаям ви можете додати форми способом з прикладу, але форма вже буде мати form_id.
$form['multiple_form'] = \Drupal::formBuilder()->getForm('Drupal\my_module\Form\MyForm');
Ідея вирішення цієї проблема заключається в створенні кастомного метода у которий ми можемо передати потрібний нам ID для форми. Для цього редагуємо метод getFormId() у класі нашої форми.
private $custom_id; public function getFormId(){ return 'my_module_form_' . $this->custom_id; } public function setCustomId($id) { $this->custom_id = $id; }
Після цього ми можемо дістати обьект Форми класу і додати будь-який ID.
$formObject = \Drupal::service('class_resolver')->getInstanceFromDefinition('Drupal\my_module\Form\MyForm'); $formObject->setCustomId($id); $formRenderable = \Drupal::formBuilder()->getForm($formObject); $form['multiple_form'] = $form_renderable;