TestMultipleFormController.php in Drupal 9
File
core/modules/block/tests/modules/block_test/src/Controller/TestMultipleFormController.php
View source
<?php
namespace Drupal\block_test\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Form\FormState;
class TestMultipleFormController extends ControllerBase {
public function testMultipleForms() {
$form_state = new FormState();
$build = [
'form1' => $this
->formBuilder()
->buildForm('\\Drupal\\block_test\\Form\\TestForm', $form_state),
'form2' => $this
->formBuilder()
->buildForm('\\Drupal\\block_test\\Form\\FavoriteAnimalTestForm', $form_state),
];
$post_render_callable = function ($elements) {
$matches = [];
preg_match_all('<form\\s(.*?)action="(.*?)"(.*)>', $elements, $matches);
$action_values = $matches[2];
foreach ($action_values as $action_value) {
$this
->messenger()
->addStatus('Form action: ' . $action_value);
}
return $elements;
};
$build['#post_render'] = [
$post_render_callable,
];
return $build;
}
}