Envoyer un formulaire au modèle de brindille

9

Comment puis-je passer un formulaire à un modèle de brindille dans Drupal 8?

Par exemple, je reçois ceci:

un formulaire: mymodule / src / Form / MyForm.php

Puis sur mon contrôleur:

public function myController() {

    ??????

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

mytemplate.html.twig

{{ ????? }}
rpayanm
la source
Voulez-vous dire que vous souhaitez que l'objet entité soit disponible dans le prétraitement / modèle, ou que vous souhaitez que la vue rendue de l'entité soit disponible?
Clive
@Clive Je veux que la vue rendue de l'entité soit disponible pour l'envoi au modèle, puis cela la montre.
rpayanm
1
Il n'y a rien de tel qu'une "entité de rendu". les nœuds et les blocs ont une API similaire pour être affichés, mais les formulaires sont très différents et ne sont certainement pas une entité. Posez une question spécifique et vous obtiendrez une réponse qui vous aidera. quel type d'entité, voulez-vous simplement afficher avec la sortie par défaut, ou l'utiliser dans votre propre modèle, ...
Berdir
Permettez-moi ensuite de modifier la question.
rpayanm
Ce n'est toujours pas assez d'informations. Encore une fois, quel type d'entité voulez-vous produire? Et que fait exactement votre modèle. En bref, quelle est votre entrée et votre sortie attendue. Incluez également votre implémentation hook_theme ().
Berdir

Réponses:

14

Eh bien, je l'ai fait, pour tous ceux qui en ont besoin:

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

En brindille:

{{ form }}
rpayanm
la source