Existem duas opções para retornar (D8) ou renderizar (D7) um formulário. Estes são \Drupal::formBuilder()->getForm
e Drupal::formBuilder()->buildForm
. Eu uso \Drupal::formBuilder()->getForm
como abaixo.
Use isto se você não estiver passando um parâmetro:
$form = \Drupal::formBuilder()->getForm('\Drupal\example\Form\ExampleForm');
return $form;
Use isso se você estiver passando um parâmetro:
$parameter = "your_parameter";
$form = \Drupal::formBuilder()->getForm('\Drupal\example\Form\ExampleForm', $parameter);
return $form;
//pass to formbuild function
public function buildForm(array $form, FormStateInterface $form_state, $parameter = NULL){//form code}
Drupal 7 Equivalente ao acima:
$parameter = 'your_parameter';
$form = drupal_get_form('form_id', $parameter);
print drupal_render($form);
//pass to form function
function form_id ($form, &$form_state, $parameter){//form code}
Felicidades. Deixe-me saber se isso ajuda.