Invia un modulo al modello di ramoscello


9

Come posso passare un modulo al modello di ramoscello in Drupal 8?

Ad esempio, ottengo questo:

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

Quindi sul mio controller:

public function myController() {

    ??????

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

mytemplate.html.twig

{{ ????? }}

Vuoi dire che l'oggetto entità disponibile nel preprocesso / modello, o che desideri rendere disponibile la vista renderizzata dell'entità?
Clive

@Clive Voglio che la vista renderizzata dell'entità sia disponibile per l'invio al modello e quindi questo lo mostri.
rpayanm,

1
Non esiste una "entità di rendering". nodi e blocchi hanno un'API simile per essere visualizzati, ma i moduli sono abbastanza diversi e sicuramente non sono un'entità. Fai una domanda specifica e otterrai una risposta che ti aiuterà. che tipo di entità, vuoi solo visualizzare con l'output predefinito o usarlo nel tuo modello, ...
Berdir

Vorrei quindi modificare la domanda.
rpayanm,

Non sono ancora abbastanza informazioni. Quindi di nuovo, che tipo di entità vuoi produrre? E cosa sta facendo esattamente il tuo modello. In breve, qual è il tuo input e output atteso. Includi anche la tua implementazione hook_theme ().
Berdir,

Risposte:


14

Bene, l'ho fatto, per chiunque ne abbia bisogno:

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

In ramoscello:

{{ form }}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.