FormTestController.php in Drupal 8
File
core/modules/system/tests/modules/form_test/src/Controller/FormTestController.php
View source
<?php
namespace Drupal\form_test\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Form\FormState;
use Drupal\Core\Language\LanguageInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
class FormTestController extends ControllerBase {
public function twoFormInstances() {
$user = $this
->currentUser();
$values = [
'uid' => $user
->id(),
'name' => $user
->getAccountName(),
'type' => 'page',
'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
];
$node1 = $this
->entityTypeManager()
->getStorage('node')
->create($values);
$node2 = clone $node1;
$return['node_form_1'] = $this
->entityFormBuilder()
->getForm($node1);
$return['node_form_2'] = $this
->entityFormBuilder()
->getForm($node2);
return $return;
}
public function storageLegacyHandler($form_build_id) {
$form_state = new FormState();
$form = $this
->formBuilder()
->getCache($form_build_id, $form_state);
$result = [
'form' => $form,
'form_state' => $form_state,
];
$form['#poisoned'] = TRUE;
$form_state
->set('poisoned', TRUE);
$this
->formBuilder()
->setCache($form_build_id, $form, $form_state);
return new JsonResponse($result);
}
}