Skip to content

Instantly share code, notes, and snippets.

@msankhala
Created September 11, 2018 11:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save msankhala/abe43f1864337ee7ae488bf7eda31b4e to your computer and use it in GitHub Desktop.
Save msankhala/abe43f1864337ee7ae488bf7eda31b4e to your computer and use it in GitHub Desktop.
Render a single field of an entity
use Drupal\node\Entity\Node;
$render = [];
$entity_type_manager = \Drupal::entityTypeManager();
$entity = $entity_type_manager->getStorage($entity_type)->load($entity_id);
$fields = [
'body',
'field_example'
];
if ($entity) {
$display = $entity_type_manager->getStorage('entity_view_display')->load($entity_type . '.' . $entity->bundle() . '.' . $view_mode);
$view_builder = NULL;
foreach ($fields as $field_name) {
if (isset($entity->{$field_name})) {
$component = $display->getComponent($field_name);
if ($component) {
if ($view_builder === NULL) {
$view_builder = $entity_type_manager->getViewBuilder($entity_type);
}
$render[$field_name] = $view_builder->viewField($entity->{$field_name}, $display->getComponent($field_name));
}
}
}
}
//or
$build = $entity->field_example->view('teaser');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment