core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php index c864ceb..e18b0b6 100644 --- a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php +++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php @@ -152,6 +152,9 @@ public function getRenderer($field_name) { * {@inheritdoc} */ public function buildForm(FieldableEntityInterface $entity, array &$form, FormStateInterface $form_state) { + /** @var \Drupal\Core\Render\RendererInterface $renderer */ + $renderer = \Drupal::service('renderer'); + // Set #parents to 'top-level' by default. $form += array('#parents' => array()); @@ -172,19 +175,17 @@ public function buildForm(FieldableEntityInterface $entity, array &$form, FormSt // definition. $field_definition = $this->getFieldDefinition($name); if ($field_definition instanceof ConfigEntityInterface) { - // @todo: Use RendererInterface::addDependency() once https://www.drupal.org/node/2444231 lands. - $form['name']['#cache']['tags'] = $field_definition->getCacheTags(); + $renderer->addDependency($form['name'], $field_definition); $field_storage_definition = $field_definition->getFieldStorageDefinition(); if ($field_storage_definition instanceof ConfigEntityInterface) { - $form['name']['#cache']['tags'] = Cache::mergeTags($form['name']['#cache']['tags'], $field_storage_definition->getCacheTags()); + $renderer->addDependency($form['name'], $field_storage_definition); } } } } // Associate the cache tags for the form display. - // @todo: Use RendererInterface::addDependency() once https://www.drupal.org/node/2444231 lands. - $form['#cache']['tags'] = Cache::mergeTags(isset($form['#cache']['tags']) ? $form['#cache']['tags'] : [], $this->getCacheTags()); + $renderer->addDependency($form, $this); // Add a process callback so we can assign weights and hide extra fields. $form['#process'][] = array($this, 'processForm');