diff --git a/modules/ctools_block/src/Plugin/Block/EntityField.php b/modules/ctools_block/src/Plugin/Block/EntityField.php index 14cf6ac..89564ac 100644 --- a/modules/ctools_block/src/Plugin/Block/EntityField.php +++ b/modules/ctools_block/src/Plugin/Block/EntityField.php @@ -139,7 +139,10 @@ class EntityField extends BlockBase implements ContextAwarePluginInterface, Cont /** @var \Drupal\Core\Field\FieldItemListInterface $field */ $field = $entity->{$this->fieldName}; $display_settings = $this->getConfiguration()['formatter']; - $build['field'] = $field->view($display_settings); + $field_build = $field->view($display_settings); + if (Element::children($field_build)) { + $build['field'] = $field_build; + } // Set the cache data appropriately. $build['#cache']['contexts'] = $this->getCacheContexts(); @@ -166,12 +169,7 @@ class EntityField extends BlockBase implements ContextAwarePluginInterface, Cont ->fieldAccess('view', $this->getFieldDefinition(), $account); if ($field_access) { - // Build a renderable array for the field. - $build = $entity->get($this->fieldName)->view($this->configuration['formatter']); - // If there are actual renderable children, grant access. - if (Element::children($build)) { - return AccessResult::allowed(); - } + return AccessResult::allowed(); } } // Entity doesn't have this field, so access is denied.