it-swarm.com.de

Wie lade ich das Formular zum Erstellen oder Bearbeiten des Knotens?

Zum Laden des Anmeldeformulars verwende ich den folgenden Code.

$form = \Drupal::formBuilder()->getForm('Drupal\user\Form\UserLoginForm');

Ich möchte das Formular laden, um einen Knoten zu erstellen oder zu bearbeiten. Wie kann ich das erreichen?

6
Jeff W Petersen

Teilweise von einer Antwort kopieren, die ich hier gegeben habe: Wie ändere ich $ form_state, bevor ich ein Formular rendere?

Um ein Formular zum Hinzufügen zu erhalten, müssen Sie möglicherweise Folgendes tun:

$values = array('type' => $node_type);

$node = \Drupal::entityTypeManager()
  ->getStorage('node')
  ->create($values);

$form = \Drupal::entityTypeManager()
  ->getFormObject('node', 'default')
  ->setEntity($node);
return \Drupal::formBuilder()->getForm($form);

Bearbeiten: Irgendwie habe ich vermisst, dass Sie Bearbeiten gesagt haben. Sie tun genau das Gleiche, außer dass Sie keinen neuen $ -Knoten erstellen, sondern den zu bearbeitenden Knoten laden und diesen dann verwenden.

Wie dort geschrieben, basiert dies auf dem Modul entityblock_form. Wenn Sie dies also in einem Block benötigen, können Sie dieses Modul auch einfach verwenden.

18
Berdir