it-swarm.com.de

Programmatisch ein Formular in Drupal 8

Die Dokumentation besagt:

Das an die Methode getForm () übergebene Argument ist der Name der Klasse, die Ihr Formular definiert, und eine Implementierung von\Drupal\Core\Form\FormBuilderInterface.

Wie finde ich den Namen der Klasse heraus, die das Website-Feedback-Formular definiert, das vom Kernkontakt bereitgestellt wird Modul (die Formular-ID lautet: feedback_contact_message_form).

Wenn ich dpm() das Formular habe, kann ich sehen, dass eine Klasse definiert ist:

$input array(30)
  →'#attributes' => array(1)
    →'class' => array(3)
      string(29) "feedback-contact-message-form"
      string(20) "contact-message-form"
      string(12) "contact-form"

Ich habe verschiedene Formen davon als Parameter ausprobiert, an die übergeben werden soll:

\Drupal::formBuilder()->getForm();

aber kein Glück. Vielen Dank

12
dbj44

Dies rendert innerhalb eines Block-Plugins:

class myModule extends BlockBase {
  public function build() {

    $default_form = \Drupal::config('contact.settings')->get('default_form');
    $entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form);

    $message = \Drupal::entityManager()
      ->getStorage('contact_message')
      ->create(array(
        'contact_form' => $entity->id(),
      ));

    $form = \Drupal::service('entity.form_builder')->getForm($message);

    return $form;
  }
}
13
dbj44