Enviar un formulario a la plantilla de ramita


9

¿Cómo puedo pasar un formulario a la plantilla de ramita en Drupal 8?

Por ejemplo, me sale esto:

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

Luego en mi controlador:

public function myController() {

    ??????

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

mytemplate.html.twig

{{ ????? }}

¿Quiere decir que desea que el objeto de entidad esté disponible en el preproceso / plantilla, o que desee que esté disponible la vista renderizada de la entidad?
Clive

@Clive Quiero que la vista renderizada de la entidad esté disponible para enviar a la plantilla y luego esto se muestra.
rpayanm

1
No existe una "entidad de representación". los nodos y los bloques tienen una API similar para mostrarse, pero los formularios son bastante diferentes y definitivamente no son una entidad. Haga una pregunta específica y recibirá una respuesta que lo ayudará. qué tipo de entidad, solo desea ver con la salida predeterminada, o usarla en su propia plantilla, ...
Berdir

Permítanme editar la pregunta.
rpayanm

Eso todavía no es suficiente información. Entonces, de nuevo, ¿qué tipo de entidad quieres generar? ¿Y qué está haciendo exactamente tu plantilla? En resumen, ¿cuál es su entrada y salida esperada? También incluya su implementación hook_theme ().
Berdir

Respuestas:


14

Bueno, lo hice, para cualquiera que necesite esto:

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 ramita:

{{ form }}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.