Senden Sie ein Formular an die Zweigvorlage


9

Wie kann ich ein Formular an die Zweigvorlage in Drupal 8 übergeben?

Zum Beispiel bekomme ich folgendes:

ein Formular: mymodule / src / Form / MyForm.php

Dann auf meinem Controller:

public function myController() {

    ??????

    return [
        '#theme' => 'mytemplate',
        ??????
        ];
}

mytemplate.html.twig

{{ ????? }}

Meinen Sie damit, dass das Entitätsobjekt in der Vorverarbeitung / Vorlage verfügbar sein soll, oder möchten Sie, dass die gerenderte Ansicht der Entität verfügbar ist?
Clive

@Clive Ich möchte, dass die gerenderte Ansicht der Entität zum Senden an die Vorlage verfügbar ist und diese dann angezeigt wird.
Rpayanm

1
Es gibt keine "Render-Entität". Knoten und Blöcke haben eine ähnliche API, die angezeigt werden soll, aber Formulare sind sehr unterschiedlich und definitiv keine Entität. Wenn Sie eine bestimmte Frage stellen, erhalten Sie eine Antwort, die Ihnen hilft. Welche Art von Entität möchten Sie nur mit der Standardausgabe anzeigen oder in Ihrer eigenen Vorlage verwenden, ...
Berdir

Lassen Sie mich dann die Frage bearbeiten.
Rpayanm

Das sind immer noch nicht genug Informationen. Also, welche Art von Entität möchten Sie ausgeben? Und was genau macht Ihre Vorlage? Kurz gesagt, was ist Ihre Eingabe und erwartete Ausgabe. Fügen Sie auch Ihre hook_theme () -Implementierung hinzu.
Berdir

Antworten:


14

Nun, ich habe es für jeden getan, der dies braucht:

public function pageAction() {
  $myform = \Drupal::formBuilder()->getForm('Drupal\[mymodule]\Form\[myformclass]');
  // If you want modify the form:
  $myform['field']['#value'] = 'From my controller';

  $build = [
    '#theme' => 'mytemplate'
    '#form' => $myform,
  ];
}

Im Zweig:

{{ form }}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.