drupal 8 – Renderizar un formulario web mediante programación

Pregunta:

Estoy intentando renderizar un formulario web dentro de un complemento de bloque. Puedo recuperar con éxito el formulario web usando el siguiente código

$webform = \Drupal::entityTypeManager()->getStorage('webform')->load('my_webform');

Sin embargo, me gustaría renderizar este formulario. He intentado usar

return $webform;

Pero recibo el error

Error fatal recuperable: el argumento 1 pasado a Drupal \ Core \ Render \ Element :: isEmpty () debe ser del tipo matriz, objeto dado

Supongo que esto se debe a que $ webform no está formateado como una matriz de renderización adecuada, pero no estoy seguro de cómo hacerlo. He estado buscando pistas dentro del código del módulo de formulario web original, pero no he podido encontrar nada.

¿Cómo renderizaría programáticamente un formulario web? ¿Y / o hay alguna forma de encontrar en el código de un módulo o entidad la forma de representar esa entidad?

Respuesta:

Me las arreglé para encontrar un método para la clase de entidad de formulario web llamado getSubmissionForm. Lo encontré en el código del módulo de formulario web en src / Entity / Webform.php

Lo invoqué así

$webform = \Drupal::entityTypeManager()->getStorage('webform')->load('my_webform');
$webform = $webform->getSubmissionForm();

return $webform;

Que devolvió el formulario web especificado renderizado.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım