public function FieldFormatterEntityEmbedDisplayBase::build in Entity Embed 8
Builds the renderable array for this Entity Embed display plugin.
Return value
array A renderable array representing the content of the embedded entity.
Overrides EntityEmbedDisplayBase::build
1 call to FieldFormatterEntityEmbedDisplayBase::build()
- EntityReferenceFieldFormatter::build in src/
Plugin/ entity_embed/ EntityEmbedDisplay/ EntityReferenceFieldFormatter.php - Builds the renderable array for this Entity Embed display plugin.
1 method overrides FieldFormatterEntityEmbedDisplayBase::build()
- EntityReferenceFieldFormatter::build in src/
Plugin/ entity_embed/ EntityEmbedDisplay/ EntityReferenceFieldFormatter.php - Builds the renderable array for this Entity Embed display plugin.
File
- src/
EntityEmbedDisplay/ FieldFormatterEntityEmbedDisplayBase.php, line 150
Class
- FieldFormatterEntityEmbedDisplayBase
- Base class for field formatter display plugins.
Namespace
Drupal\entity_embed\EntityEmbedDisplayCode
public function build() {
// Create a temporary entity to which our fake field value can be
// added.
$fakeEntity = EntityEmbedFakeEntity::create([
'type' => '_entity_embed',
]);
$definition = $this
->getFieldDefinition();
/* @var \Drupal\Core\Field\FieldItemListInterface $items $items */
// Create a field item list object, 1 is the value, array('target_id' => 1)
// would work too, or multiple values. 1 is passed down from the list to the
// field item, which knows that an integer is the ID.
$items = $this->typedDataManager
->create($definition, $this
->getFieldValue($definition), $definition
->getName(), $fakeEntity
->getTypedData());
// Prepare, expects an array of items, keyed by parent entity ID.
$formatter = $this
->getFieldFormatter();
$formatter
->prepareView([
$fakeEntity
->id() => $items,
]);
$build = $formatter
->viewElements($items, $this
->getLangcode());
// For some reason $build[0]['#printed'] is TRUE, which means it will fail
// to render later. So for now we manually fix that.
// @todo Investigate why this is needed.
show($build[0]);
return $build[0];
}