Wyślij formularz do szablonu gałązki

9

Jak mogę przekazać formularz do szablonu gałązki w Drupal 8?

Na przykład otrzymuję to:

formularz: mymodule / src / Form / MyForm.php

Następnie na moim kontrolerze:

public function myController() {

    ??????

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

mytemplate.html.twig

{{ ????? }}
rpayanm
źródło
Czy masz na myśli, że chcesz, aby obiekt encji był dostępny w procesie wstępnym / szablonie, czy chcesz renderowany widok encji?
Clive
@Clive Chcę, aby renderowany widok encji był dostępny do wysłania do szablonu, a następnie to pokaże.
rpayanm
1
Nie ma czegoś takiego jak „jednostka renderująca”. węzły i bloki mają podobny interfejs API do wyświetlenia, ale formularze są zupełnie inne i zdecydowanie nie są bytem. Zadaj konkretne pytanie, a otrzymasz odpowiedź, która ci pomoże. jaki byt chcesz po prostu wyświetlić z domyślnym wyjściem, czy użyć go we własnym szablonie, ...
Berdir
Pozwól mi następnie edytować pytanie.
rpayanm
To wciąż za mało informacji. Więc znowu, jaki byt chcesz wygenerować? I co dokładnie robi Twój szablon. W skrócie, jaki jest twój wkład i oczekiwany wynik. Dołącz także implementację hook_theme ().
Berdir

Odpowiedzi:

14

Zrobiłem to dla każdego, kto tego potrzebuje:

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,
  ];
}

W gałązce:

{{ form }}
rpayanm
źródło