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

{{ ????? }}

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 }}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.