You are here

public function NestedEntityTestForm::buildForm in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/field/tests/modules/field_test/src/Form/NestedEntityTestForm.php \Drupal\field_test\Form\NestedEntityTestForm::buildForm()

{@inheritdoc]

Overrides FormInterface::buildForm

File

core/modules/field/tests/modules/field_test/src/Form/NestedEntityTestForm.php, line 30
Contains \Drupal\field_test\Form\NestedEntityTestForm.

Class

NestedEntityTestForm
Provides a form for field_test routes.

Namespace

Drupal\field_test\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, EntityInterface $entity_1 = NULL, EntityInterface $entity_2 = NULL) {

  // First entity.
  $form_state
    ->set('entity_1', $entity_1);
  $form_display_1 = EntityFormDisplay::collectRenderDisplay($entity_1, 'default');
  $form_state
    ->set('form_display_1', $form_display_1);
  $form_display_1
    ->buildForm($entity_1, $form, $form_state);

  // Second entity.
  $form_state
    ->set('entity_2', $entity_2);
  $form_display_2 = EntityFormDisplay::collectRenderDisplay($entity_2, 'default');
  $form_state
    ->set('form_display_2', $form_display_2);
  $form['entity_2'] = array(
    '#type' => 'details',
    '#title' => t('Second entity'),
    '#tree' => TRUE,
    '#parents' => array(
      'entity_2',
    ),
    '#weight' => 50,
  );
  $form_display_2
    ->buildForm($entity_2, $form['entity_2'], $form_state);
  $form['save'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
    '#weight' => 100,
  );
  return $form;
}