Drupal 9 image field migration

Є проблема з багаторазовим виводом однієї форми на одній сторінці і обробляти результат по кожній з них. Ви можете спробувати зробити це, але 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;