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;

Коментувати

Вміст цього поля є приватним і не буде доступний широкому загалу.
  • Не дозволено жодних HTML теґів.
  .ooooo.     oooooooooooo  ooooo      ooo    .oooooo.     oooo         ooo        ooooo 
d88' `8. d'""""""d888' `888b. `8' d8P' `Y8b `888 `88. .888'
Y88.. .8' .888P 8 `88b. 8 888 888 oooo 888b d'888
`88888b. d888' 8 `88b. 8 888 888 .8P' 8 Y88. .P 888
.8' ``88b .888P 8 `88b.8 888 ooooo 888888. 8 `888' 888
`8. .88P d888' .P 8 `888 `88. .88' 888 `88b. 8 Y 888
`boood8' .8888888888P o8o `8 `Y8bood8P' o888o o888o o8o o888o


Уведіть код, зображений у стилі Ascii-Арт.