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.